diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-06 17:45:26 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-06 17:45:26 +0100 |
commit | e3c742ff04a665c70c029f266aa0fe72e12ac72c (patch) | |
tree | e6a262a223d151afd804359e243cc5d0301e732f /evc/src/ser.rs | |
parent | 849c3769fbd38940c9bfa73bcea160848a38d9b6 (diff) | |
download | video-codec-experiments-e3c742ff04a665c70c029f266aa0fe72e12ac72c.tar video-codec-experiments-e3c742ff04a665c70c029f266aa0fe72e12ac72c.tar.bz2 video-codec-experiments-e3c742ff04a665c70c029f266aa0fe72e12ac72c.tar.zst |
vec2 everywhere
Diffstat (limited to 'evc/src/ser.rs')
-rw-r--r-- | evc/src/ser.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/evc/src/ser.rs b/evc/src/ser.rs index 3b7814f..61ca684 100644 --- a/evc/src/ser.rs +++ b/evc/src/ser.rs @@ -141,6 +141,18 @@ impl Ser for usize { Ok(unsafe { std::mem::transmute_copy(&buf) }) } } +impl Ser for isize { + fn write(&self, sink: &mut impl Write) -> anyhow::Result<()> { + Ok(sink + .write_all(&unsafe { std::mem::transmute_copy::<_, [u8; 8]>(self) }) + .context("write isize")?) + } + fn read(source: &mut impl Read) -> anyhow::Result<Self> { + let mut buf = [0u8; 8]; + source.read_exact(&mut buf)?; + Ok(unsafe { std::mem::transmute_copy(&buf) }) + } +} impl Ser for f32 { fn write(&self, sink: &mut impl Write) -> anyhow::Result<()> { Ok(sink @@ -171,6 +183,7 @@ mod test { use super::{Ser, Sink}; use crate::header::Header; use crate::ser::Source; + use crate::vec2::Vec2; use std::fmt::Debug; use std::io::Cursor; @@ -196,7 +209,7 @@ mod test { fn header() { test_ser(Header { frame_count: 123, - resolution: (13, 37), + resolution: Vec2 { x: 13, y: 37 }, }); } #[test] |