pub struct CacheHeader {
pub version: u8,
pub column_count: u8,
pub row_count: u64,
pub created_at_us: u64,
pub data_crc64: u64,
}Expand description
File header for the binary event cache.
Fields§
§version: u8Format version (currently 1).
column_count: u8Number of columns present.
row_count: u64Number of events (rows) in the file.
created_at_us: u64Wall-clock timestamp at cache creation (us since Unix epoch).
data_crc64: u64CRC-64 over all column data bytes.
Implementations§
Source§impl CacheHeader
impl CacheHeader
Sourcepub const fn new(row_count: u64, created_at_us: u64) -> Self
pub const fn new(row_count: u64, created_at_us: u64) -> Self
Create a new header for a file containing row_count events,
created at created_at_us with a placeholder CRC.
Sourcepub fn encode(&mut self, cols: &CacheColumns) -> Result<Vec<u8>, CacheError>
pub fn encode(&mut self, cols: &CacheColumns) -> Result<Vec<u8>, CacheError>
Encode the header and all column data into a byte buffer.
The column offsets array is written immediately after the 32-byte header. Each column is then written at its recorded offset.
§Errors
Returns CacheError if any column fails to encode.
Sourcepub fn decode(data: &[u8]) -> Result<(Self, CacheColumns), CacheError>
pub fn decode(data: &[u8]) -> Result<(Self, CacheColumns), CacheError>
Decode a cache file from bytes, returning the header and column data.
§Errors
Returns CacheError if:
- The magic bytes are wrong.
- The version is unsupported.
- The CRC does not match.
- Any column data is truncated or malformed.
§Panics
Panics if fixed-size slice conversions fail, which cannot happen when the data length has already been validated.
Trait Implementations§
Source§impl Clone for CacheHeader
impl Clone for CacheHeader
Source§fn clone(&self) -> CacheHeader
fn clone(&self) -> CacheHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CacheHeader
impl Debug for CacheHeader
Source§impl PartialEq for CacheHeader
impl PartialEq for CacheHeader
impl Eq for CacheHeader
impl StructuralPartialEq for CacheHeader
Auto Trait Implementations§
impl Freeze for CacheHeader
impl RefUnwindSafe for CacheHeader
impl Send for CacheHeader
impl Sync for CacheHeader
impl Unpin for CacheHeader
impl UnsafeUnpin for CacheHeader
impl UnwindSafe for CacheHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.