llkv_column_map/
codecs.rs

1//! Manual little-endian codecs for fixed-width structs.
2
3#![allow(dead_code)]
4
5// Convenience helpers for appending to Vecs and reading with an advancing offset.
6
7#[inline(always)]
8pub fn write_u32_le(dst: &mut Vec<u8>, v: u32) {
9    dst.extend_from_slice(&v.to_le_bytes());
10}
11
12#[inline(always)]
13pub fn write_u64_le(dst: &mut Vec<u8>, v: u64) {
14    dst.extend_from_slice(&v.to_le_bytes());
15}
16
17#[inline(always)]
18pub fn read_u32_le(src: &[u8], o: &mut usize) -> u32 {
19    let v = u32::from_le_bytes(src[*o..*o + 4].try_into().unwrap());
20    *o += 4;
21    v
22}
23
24#[inline(always)]
25pub fn read_u64_le(src: &[u8], o: &mut usize) -> u64 {
26    let v = u64::from_le_bytes(src[*o..*o + 8].try_into().unwrap());
27    *o += 8;
28    v
29}