From bf3b9844056a8bba49de123a66cf8fbfd128fa3f Mon Sep 17 00:00:00 2001 From: rvcas Date: Mon, 30 May 2022 10:49:23 -0400 Subject: [PATCH] fix: add back the decoder lifetime --- crates/flat/src/decoder.rs | 12 ++++++------ crates/flat/src/lib.rs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/flat/src/decoder.rs b/crates/flat/src/decoder.rs index 7e9eedd2..95ca1362 100644 --- a/crates/flat/src/decoder.rs +++ b/crates/flat/src/decoder.rs @@ -1,21 +1,21 @@ use crate::decode::Decode; -pub struct Decoder { - buffer: Vec, +pub struct Decoder<'b> { + buffer: &'b [u8], used_bits: i64, pos: usize, } -impl Decoder { - pub fn new(bytes: &[u8]) -> Decoder { +impl<'b> Decoder<'b> { + pub fn new(bytes: &'b [u8]) -> Decoder { Decoder { - buffer: bytes.to_vec(), + buffer: bytes, pos: 0, used_bits: 0, } } - pub fn decode<'b, T: Decode<'b>>(&mut self) -> Result { + pub fn decode>(&mut self) -> Result { T::decode(self) } diff --git a/crates/flat/src/lib.rs b/crates/flat/src/lib.rs index d61d11d1..8a11995b 100644 --- a/crates/flat/src/lib.rs +++ b/crates/flat/src/lib.rs @@ -37,7 +37,7 @@ where Ok(e.buffer) } -pub fn decode<'b, T>(bytes: &[u8]) -> Result +pub fn decode<'b, T>(bytes: &'b [u8]) -> Result where T: de::Decode<'b>, {