pub trait RecordFormat: Send + Sync {
// Required methods
fn record_header_size(&self, key_len: usize) -> usize;
fn total_size(&self, key_len: usize, value_len: usize) -> usize;
fn serialize_record(&self, record: &Record, include_value: bool) -> Vec<u8> ⓘ;
fn parse_record(&self, data: &[u8]) -> Option<(Vec<u8>, usize, u64, u64)>;
fn value_offset(&self, key_len: usize) -> usize;
}
Expand description
Trait for handling different record format versions
Required Methods§
Sourcefn record_header_size(&self, key_len: usize) -> usize
fn record_header_size(&self, key_len: usize) -> usize
Calculate the size of a record on disk (excluding value)
Sourcefn total_size(&self, key_len: usize, value_len: usize) -> usize
fn total_size(&self, key_len: usize, value_len: usize) -> usize
Calculate total size including value
Sourcefn serialize_record(&self, record: &Record, include_value: bool) -> Vec<u8> ⓘ
fn serialize_record(&self, record: &Record, include_value: bool) -> Vec<u8> ⓘ
Serialize a record to bytes for disk storage
Sourcefn parse_record(&self, data: &[u8]) -> Option<(Vec<u8>, usize, u64, u64)>
fn parse_record(&self, data: &[u8]) -> Option<(Vec<u8>, usize, u64, u64)>
Parse a record from disk bytes (returns key, value_len, timestamp, ttl_expiry)
Sourcefn value_offset(&self, key_len: usize) -> usize
fn value_offset(&self, key_len: usize) -> usize
Get the offset where value data starts in the serialized format