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/reader.rs | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) (limited to 'src/reader.rs') diff --git a/src/reader.rs b/src/reader.rs index 00f66cb..6f18e0b 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1,5 +1,7 @@ use std::{fs::File, io::{BufReader, Read}}; +use crate::byte_encode::ByteEncode; + pub struct FileReader { buf_reader: BufReader @@ -18,39 +20,15 @@ impl FileReader { { self.buf_reader.seek_relative(c as i64).expect("Cannot seek!"); } - pub fn read_array + Sized, const C: usize>(&mut self) -> [T; C] + pub fn read_array + Sized, const C: usize>(&mut self) -> [T; C] { std::array::from_fn(|_| self.read()) } - pub fn read>(&mut self) -> T + pub fn read>(&mut self) -> T { let mut data = [0u8; N]; self.buf_reader.read_exact(&mut data).expect("Bad read"); T::from_le_bytes(&data) } } - -pub trait FromBytes: Sized + Copy -{ - fn from_le_bytes(buffer: &[u8; N]) -> Self; -} - -impl FromBytes<4> for u32 -{ - fn from_le_bytes(buffer: &[u8; 4]) -> Self { - u32::from_le_bytes(*buffer) - } -} -impl FromBytes<2> for u16 -{ - fn from_le_bytes(buffer: &[u8; 2]) -> Self { - u16::from_le_bytes(*buffer) - } -} -impl FromBytes<1> for u8 -{ - fn from_le_bytes(buffer: &[u8; 1]) -> Self { - u8::from_le_bytes(*buffer) - } -} -- cgit v1.3.1