kermit_ds/lib.rs
1//! Data structures for Kermit's relational algebra engine.
2//!
3//! Provides two trie-based relation implementations:
4//!
5//! - [`TreeTrie`]: A pointer-based trie where each node owns its children.
6//! Simple and cache-friendly for small relations.
7//! - [`ColumnTrie`]: A column-oriented (flattened) trie that stores each level
8//! in parallel `data`/`interval` arrays. More compact for large relations.
9//!
10//! Both implement the [`Relation`] and
11//! [`TrieIterable`](kermit_iters::TrieIterable) traits, making them
12//! interchangeable in join algorithms.
13
14mod ds;
15mod heap_size;
16mod relation;
17mod shared;
18
19// Re-export IndexStructure for external crates (CLI) to reference directly
20pub use {
21 ds::{ColumnTrie, IndexStructure, TreeTrie},
22 heap_size::HeapSize,
23 relation::{Projectable, Relation, RelationError, RelationFileExt, RelationHeader},
24};