pub trait ChunkDecoder: Send + Sync {
// Required methods
fn clone_as_decoder(&self) -> Box<dyn ChunkDecoder>;
fn chunk(&self) -> &ChunkId;
fn desc(&self) -> &ChunkCodecDesc;
fn require_index(&self) -> Option<(Option<u32>, Option<Vec<Range<u32>>>)>;
fn push_piece_data(&self, piece: &PieceData) -> BuckyResult<PushIndexResult>;
}