Skip to main content

ColumnCodec

Trait ColumnCodec 

Source
pub trait ColumnCodec {
    type Item;

    // Required methods
    fn encode(items: &[Self::Item], buf: &mut Vec<u8>) -> Result<(), CacheError>;
    fn decode(
        data: &[u8],
        count: usize,
    ) -> Result<(Vec<Self::Item>, usize), CacheError>;
}
Expand description

Trait for encoding and decoding a single column of event data.

Each column type has its own codec implementation optimised for the data’s statistical properties.

Required Associated Types§

Source

type Item

The decoded Rust type for elements in this column.

Required Methods§

Source

fn encode(items: &[Self::Item], buf: &mut Vec<u8>) -> Result<(), CacheError>

Encode a slice of items into bytes.

§Errors

Returns CacheError if encoding fails.

Source

fn decode( data: &[u8], count: usize, ) -> Result<(Vec<Self::Item>, usize), CacheError>

Decode count items from a byte slice.

Returns the decoded items and the number of bytes consumed.

§Errors

Returns CacheError if decoding fails (truncated data, invalid encoding, etc.).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§