diff options
| author | Dylan <boss@tehbox.org> | 2026-06-21 15:27:50 +1200 |
|---|---|---|
| committer | Dylan <boss@tehbox.org> | 2026-06-21 15:27:50 +1200 |
| commit | db14bdce8eac0d7d83109365cbeda389febfb788 (patch) | |
| tree | 755a7d22efde8f283dc73b5b943d5c37f4caf158 /src/byte_encode.rs | |
| parent | a472b1cdaa8a1f72b96988009b3d4d9820e7128f (diff) | |
| download | tehimage-rs-db14bdce8eac0d7d83109365cbeda389febfb788.tar.gz tehimage-rs-db14bdce8eac0d7d83109365cbeda389febfb788.zip | |
feat: Moved from and to bytes to a single trait
Now called `ByteEncode`
Diffstat (limited to 'src/byte_encode.rs')
| -rw-r--r-- | src/byte_encode.rs | 33 |
1 files changed, 33 insertions, 0 deletions
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<const N: usize>: 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) + } +} |
