Skip to main content

reifydb_core/value/column/
encoding.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2025 ReifyDB
3
4// Identifier for a column encoding. Canonical encodings (identity wraps) and
5// compressed encoding ids are listed here so they can be referenced from the
6// `ColumnData` trait defaults in reifydb-core. The matching `Encoding` trait
7// implementations live in `reifydb-column`.
8#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
9pub struct EncodingId(pub &'static str);
10
11impl EncodingId {
12	pub const CANONICAL_BOOL: EncodingId = EncodingId("column.canonical.bool");
13	pub const CANONICAL_FIXED: EncodingId = EncodingId("column.canonical.fixed");
14	pub const CANONICAL_VARLEN: EncodingId = EncodingId("column.canonical.varlen");
15	pub const CANONICAL_BIGNUM: EncodingId = EncodingId("column.canonical.bignum");
16
17	pub const CONSTANT: EncodingId = EncodingId("column.constant");
18	pub const ALL_NONE: EncodingId = EncodingId("column.all_none");
19	pub const DICT: EncodingId = EncodingId("column.dict");
20	pub const RLE: EncodingId = EncodingId("column.rle");
21	pub const DELTA: EncodingId = EncodingId("column.delta");
22	pub const DELTA_RLE: EncodingId = EncodingId("column.delta_rle");
23	pub const FOR: EncodingId = EncodingId("column.for");
24	pub const BITPACK: EncodingId = EncodingId("column.bitpack");
25	pub const SPARSE: EncodingId = EncodingId("column.sparse");
26}