mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-03 14:18:47 +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)]
|
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.
|
Turn a slice of one type, into a slice of another type.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user