aboutsummaryrefslogtreecommitdiff
path: root/lvc/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-03-07 17:15:49 +0100
committermetamuffin <metamuffin@disroot.org>2023-03-07 17:15:49 +0100
commit414990bb53f5c9e2028d42db46fa641fa606cd86 (patch)
tree67424a3b7aec5e0219ecffec0fa7b0849858c8d2 /lvc/src/lib.rs
parent2167abcf72d978b4ac2f08fa7cbbddaada01f165 (diff)
downloadvideo-codec-experiments-414990bb53f5c9e2028d42db46fa641fa606cd86.tar
video-codec-experiments-414990bb53f5c9e2028d42db46fa641fa606cd86.tar.bz2
video-codec-experiments-414990bb53f5c9e2028d42db46fa641fa606cd86.tar.zst
works
Diffstat (limited to 'lvc/src/lib.rs')
-rw-r--r--lvc/src/lib.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/lvc/src/lib.rs b/lvc/src/lib.rs
index ad284df..4a88b93 100644
--- a/lvc/src/lib.rs
+++ b/lvc/src/lib.rs
@@ -1,20 +1,27 @@
#![feature(portable_simd)]
+use bincode::{Decode, Encode};
+
pub mod diff;
pub mod encode;
pub mod impls;
+pub mod decode;
+pub mod split;
+pub mod debug;
+#[cfg(test)]
+pub mod bench;
pub type PixelValue = u8;
-#[repr(C, align(2))]
-#[derive(Debug, Clone, Copy, Default)]
+#[repr(C, align(1))]
+#[derive(Debug, Clone, Copy, Default, Encode, Decode)]
pub struct Pixel {
pub r: PixelValue,
pub g: PixelValue,
pub b: PixelValue,
}
-#[derive(Debug, Clone, Copy, Default)]
+#[derive(Debug, Clone, Copy, Default, Encode, Decode)]
pub struct P2 {
pub x: i32,
pub y: i32,
@@ -25,19 +32,20 @@ pub struct Frame {
pub pixels: Vec<Pixel>,
}
+#[derive(Debug, Clone, Copy)]
pub struct View {
pub a: P2,
pub b: P2,
}
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, Encode, Decode)]
pub enum Block {
Lit(Vec<Pixel>),
Split([Box<Block>; 2]),
Ref(Ref),
}
-#[derive(Debug, Clone, Default)]
+#[derive(Debug, Clone, Copy, Default, Encode, Decode)]
pub struct Ref {
pub pos_off: P2,
pub color_off: Pixel,