#![feature(portable_simd)] use bincode::{Decode, Encode}; #[cfg(test)] pub mod bench; pub mod debug; pub mod decode; pub mod diff; pub mod encode; pub mod impls; pub mod split; pub type PixelValue = i16; #[derive(Debug, Clone, Copy, Default, Encode, Decode, PartialEq, Eq)] pub struct Pixel { pub r: PixelValue, pub g: PixelValue, pub b: PixelValue, } #[derive(Debug, Clone, Copy, Default, Encode, Decode, PartialEq, Eq)] 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, Box), Ref(Ref), } #[derive(Debug, Clone, Copy, Default, Encode, Decode)] pub struct Ref { pub pos_off: P2, pub color_off: Pixel, }