aboutsummaryrefslogtreecommitdiff
path: root/evc/src/ser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'evc/src/ser.rs')
-rw-r--r--evc/src/ser.rs15
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]