aboutsummaryrefslogtreecommitdiff
path: root/bunny/src/inttraits.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bunny/src/inttraits.rs')
-rw-r--r--bunny/src/inttraits.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/bunny/src/inttraits.rs b/bunny/src/inttraits.rs
new file mode 100644
index 0000000..5d402b3
--- /dev/null
+++ b/bunny/src/inttraits.rs
@@ -0,0 +1,14 @@
+use core::slice;
+use core::mem::size_of;
+
+pub trait AsBytes: Sized {
+ fn as_bytes(&self) -> &[u8] {
+ unsafe { slice::from_raw_parts(self as *const _ as *const u8, size_of::<Self>()) }
+ }
+}
+
+impl AsBytes for u128 {}
+impl AsBytes for u64 {}
+impl AsBytes for u32 {}
+impl AsBytes for u16 {}
+impl AsBytes for u8 {}