#![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(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, Encode, Decode)] pub struct P2 { pub x: i32, pub y: i32, } pub struct Frame { pub size: P2, pub pixels: Vec, } #[derive(Debug, Clone, Copy)] pub struct View { pub a: P2, pub b: P2, } #[derive(Debug, Clone, Encode, Decode)] pub enum Block { Lit(Vec), Split([Box; 2]), Ref(Ref), } #[derive(Debug, Clone, Copy, Default, Encode, Decode)] pub struct Ref { pub pos_off: P2, pub color_off: Pixel, }