diff --git a/crates/flat/src/decode.rs b/crates/flat/src/decode.rs index 7bd7c7f4..a9affaef 100644 --- a/crates/flat/src/decode.rs +++ b/crates/flat/src/decode.rs @@ -1,5 +1,11 @@ -use crate::decoder::Decoder; +use crate::{decoder::Decoder, filler::Filler}; pub trait Decode<'b>: Sized { fn decode(d: &mut Decoder<'b>) -> Result; } + +impl<'b> Decode<'b> for Filler { + fn decode(d: &mut Decoder<'b>) -> Result { + todo!() + } +} diff --git a/crates/flat/src/decoder.rs b/crates/flat/src/decoder.rs index 21f41fec..6923528d 100644 --- a/crates/flat/src/decoder.rs +++ b/crates/flat/src/decoder.rs @@ -2,6 +2,7 @@ use crate::decode::Decode; pub struct Decoder<'b> { buffer: &'b [u8], + used_bits: i64, pos: usize, } @@ -10,6 +11,7 @@ impl<'b> Decoder<'b> { Decoder { buffer: bytes, pos: 0, + used_bits: 0, } } diff --git a/crates/flat/src/lib.rs b/crates/flat/src/lib.rs index eb0769cd..8a11995b 100644 --- a/crates/flat/src/lib.rs +++ b/crates/flat/src/lib.rs @@ -43,7 +43,11 @@ where { let mut d = de::Decoder::new(bytes); - d.decode() + let value = d.decode()?; + + d.decode::()?; + + Ok(value) } #[cfg(test)]