76std::vector<std::uint8_t>
encode_key(
const KeyValue& v);
static KeyValue from_datetime(std::int64_t seconds, std::uint32_t nanos)
static KeyValue from_i64(std::int64_t v)
static KeyValue from_i8(std::int8_t v)
static KeyValue from_u32(std::uint32_t v)
static KeyValue from_i16(std::int16_t v)
friend KeyValue decode_key(KeyKind, bytes_view)
static KeyValue from_f32(float v)
const std::string & original_string() const
The original, untruncated string this key was built from.
static KeyValue from_i32(std::int32_t v)
static KeyValue from_u16(std::uint16_t v)
static KeyValue from_u8(std::uint8_t v)
friend std::vector< std::uint8_t > encode_key(const KeyValue &)
static KeyValue from_f64(double v)
static KeyValue from_string(KeyKind kind, const std::string &v)
static KeyValue from_u64(std::uint64_t v)
static KeyValue from_bool(bool v)
friend int compare_keys(const KeyValue &, const KeyValue &)
Three-way comparison.
Minimal C++17 stand-in for std::span: a non-owning view over contiguous memory.
span< const std::uint8_t > bytes_view
The workhorse alias: a read-only view over bytes.
std::vector< std::uint8_t > encode_key(const KeyValue &v)
KeyKind key_kind_for_column(std::uint8_t column_type)
Column type to key kind, following what the WRITER emits.
KeyValue key_max(KeyKind kind)
int compare_keys(const KeyValue &a, const KeyValue &b)
Three-way comparison.
KeyKind
The concrete key types the B+tree index can hold.
std::size_t key_serialized_size(KeyKind kind)
Serialized width in bytes. DateTime is 12: i64 seconds + u32 nanos.
KeyValue decode_key(KeyKind kind, bytes_view b)
KeyValue key_min(KeyKind kind)
Sentinels used to lower open-ended range queries.