summaryrefslogtreecommitdiff
path: root/src/reader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/reader.rs')
-rw-r--r--src/reader.rs30
1 files changed, 4 insertions, 26 deletions
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<File>
@@ -18,39 +20,15 @@ impl FileReader {
{
self.buf_reader.seek_relative(c as i64).expect("Cannot seek!");
}
- pub fn read_array<const N: usize, T: FromBytes<N> + Sized, const C: usize>(&mut self) -> [T; C]
+ pub fn read_array<const N: usize, T: ByteEncode<N> + Sized, const C: usize>(&mut self) -> [T; C]
{
std::array::from_fn(|_| self.read())
}
- pub fn read<const N: usize, T: FromBytes<N>>(&mut self) -> T
+ pub fn read<const N: usize, T: ByteEncode<N>>(&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<const N: usize>: 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)
- }
-}