mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-03 19:52:30 +00:00
Add slice.to_type
This commit is contained in:
@@ -36,6 +36,17 @@ to_bytes :: proc "contextless" (s: []$T) -> []byte {
|
||||
return ([^]byte)(raw_data(s))[:len(s) * size_of(T)]
|
||||
}
|
||||
|
||||
/*
|
||||
Turns a byte slice into a type.
|
||||
*/
|
||||
@(require_results)
|
||||
to_type :: proc(buf: []u8, $T: typeid) -> (T, bool) #optional_ok {
|
||||
if len(buf) < size_of(T) {
|
||||
return {}, false
|
||||
}
|
||||
return intrinsics.unaligned_load((^T)(raw_data(buf))), true
|
||||
}
|
||||
|
||||
/*
|
||||
Turn a slice of one type, into a slice of another type.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user