use crate::ser::{Ser, Sink, Source}; #[derive(Debug, Clone)] pub struct Header { pub resolution: (usize, usize), pub frame_count: usize, } impl Ser for Header { fn write(&self, sink: &mut impl std::io::Write) -> std::io::Result<()> { sink.put([0x5eu8, 0xb1u8, 0xc3u8, 0x08u8])?; sink.put((self.resolution, self.frame_count))?; Ok(()) } fn read(source: &mut impl std::io::Read) -> std::io::Result { source.get::<[u8; 4]>()?; Ok(Self { resolution: source.get()?, frame_count: source.get()?, }) } }