use std::io::{Cursor, Read}; use sqpack::binrw::BinRead; use sqpack::binrw::meta::ReadEndian; use crate::error::{Error, Result}; pub const MAX_MODEL_LODS: usize = 3; pub const MAX_TEXTURE_LODS: usize = 3; pub fn read_struct(mut reader: T, buf: &mut [u8]) -> Result where S::Args: Default, { let size = std::mem::size_of::(); if size > buf.len() { panic!(); } reader.read_exact(&mut buf[..size]).map_err(Error::Io)?; S::read(&mut Cursor::new(&buf[..size])) .map_err(Error::SqPackError) }