#[derive(Debug, Default, Clone)]
pub struct Record {
pub len: i32, pub attributes: i8,
pub timestamp_delta: i64, pub offset_delta: i32, pub key_len: i32, pub key: Option<Vec<u8>>,
pub value_len: i32, pub value: Option<Vec<u8>>,
pub headers: Vec<Header>,
}
#[derive(Debug, Default, Clone)]
pub struct Header {
pub key_len: i32, pub key: Option<Vec<u8>>,
pub value_len: i32, pub value: Option<Vec<u8>>,
}
#[derive(Debug, Clone, Copy)]
pub enum TimestampType {
CreateTime,
LogAppendTime,
}
#[derive(Debug, Default, Clone, Copy)]
pub enum CompressionType {
#[default]
None,
Gzip,
Snappy,
Lz4,
Zstd,
}
impl From<u8> for CompressionType {
fn from(ty: u8) -> Self {
match ty {
0 => CompressionType::None,
1 => CompressionType::Gzip,
2 => CompressionType::Snappy,
3 => CompressionType::Lz4,
4 => CompressionType::Zstd,
_ => unreachable!("unknown compression type id: {}", ty),
}
}
}