diff options
Diffstat (limited to 'lvc/src/lib.rs')
-rw-r--r-- | lvc/src/lib.rs | 18 |
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, |