diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-10 13:49:31 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-10 13:49:31 +0100 |
commit | 3dade4b3815db7bfa1baf3fbb4fb332b29aba363 (patch) | |
tree | 690ef5c0ddb552b50ec295d39714cc46938ab6d8 /src/helper.rs | |
parent | d786df60b89e52c5e4a605f95c677f4bce4c6ec3 (diff) | |
download | unity-tools-3dade4b3815db7bfa1baf3fbb4fb332b29aba363.tar unity-tools-3dade4b3815db7bfa1baf3fbb4fb332b29aba363.tar.bz2 unity-tools-3dade4b3815db7bfa1baf3fbb4fb332b29aba363.tar.zst |
first type tree read
Diffstat (limited to 'src/helper.rs')
-rw-r--r-- | src/helper.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/helper.rs b/src/helper.rs index c2b9a92..0b126ad 100644 --- a/src/helper.rs +++ b/src/helper.rs @@ -8,6 +8,8 @@ pub enum Endianness { pub trait ReadExt { fn read_u8(&mut self) -> Result<u8>; + fn read_u16(&mut self, e: Endianness) -> Result<u16>; + fn read_u16_le(&mut self) -> Result<u16>; fn read_u16_be(&mut self) -> Result<u16>; fn read_i16(&mut self, e: Endianness) -> Result<i16>; fn read_i16_be(&mut self) -> Result<i16>; @@ -26,15 +28,26 @@ pub trait ReadExt { } impl<T: Read> ReadExt for T { fn read_u8(&mut self) -> Result<u8> { - let mut buf = [0; 2]; + let mut buf = [0; 1]; self.read_exact(&mut buf)?; Ok(buf[0]) } + fn read_u16(&mut self, e: Endianness) -> Result<u16> { + match e { + Endianness::Big => self.read_u16_be(), + Endianness::Little => self.read_u16_le(), + } + } fn read_u16_be(&mut self) -> Result<u16> { let mut buf = [0; 2]; self.read_exact(&mut buf)?; Ok(u16::from_be_bytes(buf)) } + fn read_u16_le(&mut self) -> Result<u16> { + let mut buf = [0; 2]; + self.read_exact(&mut buf)?; + Ok(u16::from_le_bytes(buf)) + } fn read_i16(&mut self, e: Endianness) -> Result<i16> { match e { Endianness::Big => self.read_i16_be(), |