use nom::IResult; use std::marker::PhantomData; use std::convert::TryInto; use crate::pdata::unpack::*; //------------------------------------------ #[derive(Clone, Copy)] pub struct Hint { pub hint: [u8; 4], // FIXME: support various hint sizes _not_used: PhantomData, } impl Unpack for Hint { fn disk_size() -> u32 { Width::to_u32() } // FIXME: support different width fn unpack(i: &[u8]) -> IResult<&[u8], Hint> { let size = Width::to_usize(); Ok(( &i[size..], Hint { hint: i[0..size].try_into().unwrap(), _not_used: PhantomData, }, )) } } //------------------------------------------