aboutsummaryrefslogtreecommitdiff
path: root/src/helper.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-02-10 13:49:31 +0100
committermetamuffin <metamuffin@disroot.org>2025-02-10 13:49:31 +0100
commit3dade4b3815db7bfa1baf3fbb4fb332b29aba363 (patch)
tree690ef5c0ddb552b50ec295d39714cc46938ab6d8 /src/helper.rs
parentd786df60b89e52c5e4a605f95c677f4bce4c6ec3 (diff)
downloadunity-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.rs15
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(),