pub trait ChunkEncoder: Send + Sync {
// Required methods
fn clone_as_encoder(&self) -> Box<dyn ChunkEncoder>;
fn chunk(&self) -> &ChunkId;
fn desc(&self) -> &ChunkCodecDesc;
fn next_piece(
&self,
session_id: &TempSeq,
buf: &mut [u8],
) -> BuckyResult<usize>;
fn reset(&self) -> bool;
fn merge(&self, max_index: u32, lost_index: Vec<Range<u32>>) -> bool;
}