pub trait ChunkType {
fn get_len(&self) -> u8;
fn encode(&self, data: &mut Vec<u8>);
fn decode(data: &Vec<u8>, offset: usize, len: u8) -> Self;
fn is_empty(&self) -> bool;
fn write_to(&self, key: LogDataChunkKey, data: &mut Vec<u8>) { ... }
fn get_full_len(&self) -> u32 { ... }
}