From db14bdce8eac0d7d83109365cbeda389febfb788 Mon Sep 17 00:00:00 2001 From: Dylan Date: Sun, 21 Jun 2026 15:27:50 +1200 Subject: feat: Moved from and to bytes to a single trait Now called `ByteEncode` --- src/byte_encode.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/byte_encode.rs (limited to 'src/byte_encode.rs') diff --git a/src/byte_encode.rs b/src/byte_encode.rs new file mode 100644 index 0000000..4be57b2 --- /dev/null +++ b/src/byte_encode.rs @@ -0,0 +1,33 @@ +pub trait ByteEncode: Sized + Copy +{ + fn from_le_bytes(buffer: &[u8; N]) -> Self; + fn to_le_bytes(&self) -> [u8; N]; +} + +impl ByteEncode<4> for u32 +{ + fn from_le_bytes(buffer: &[u8; 4]) -> Self { + u32::from_le_bytes(*buffer) + } + fn to_le_bytes(&self) -> [u8; 4] { + u32::to_le_bytes(*self) + } +} +impl ByteEncode<2> for u16 +{ + fn from_le_bytes(buffer: &[u8; 2]) -> Self { + u16::from_le_bytes(*buffer) + } + fn to_le_bytes(&self) -> [u8; 2] { + u16::to_le_bytes(*self) + } +} +impl ByteEncode<1> for u8 +{ + fn from_le_bytes(buffer: &[u8; 1]) -> Self { + u8::from_le_bytes(*buffer) + } + fn to_le_bytes(&self) -> [u8; 1] { + u8::to_le_bytes(*self) + } +} -- cgit v1.3.1