diff --git a/btp/src/dechunk.rs b/btp/src/dechunk.rs index cd11e35..fb05624 100644 --- a/btp/src/dechunk.rs +++ b/btp/src/dechunk.rs @@ -83,12 +83,24 @@ impl Chunk { } } -#[derive(Debug, Default)] +#[derive(Default)] pub struct Dechunker { chunks: Vec>, info: Option, } +impl std::fmt::Debug for Dechunker { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Dechunker") + .field( + "chunks", + &self.chunks.iter().map(|c| if c.is_some() { 1 } else { 0 }), + ) + .field("info", &self.info) + .finish() + } +} + #[derive(Debug, Clone, Copy)] struct MessageInfo { message_id: u16, @@ -208,13 +220,14 @@ impl Dechunker { } } +#[derive(Debug)] pub struct MasterDechunker { dechunkers: [Option; N], counter: u64, } #[derive(Debug)] -struct DechunkerSlot { +pub struct DechunkerSlot { dechunker: Dechunker, last_used: u64, } @@ -229,6 +242,10 @@ impl Default for MasterDechunker { } impl MasterDechunker { + pub fn dechunkers(&self) -> &[Option] { + &self.dechunkers + } + pub fn insert_chunk(&mut self, chunk: Chunk) -> Option> { let message_id = chunk.header.message_id;