icydb-core 0.144.10

IcyDB — A schema-first typed query engine and persistence runtime for Internet Computer canisters
Documentation
//! Module: index
//! Responsibility: index key encoding, index entry modeling, and index-store access.
//! Does not own: query planning policy, commit orchestration, or relation semantics.
//! Boundary: executor/query/commit may depend on index; index depends on data primitives.

mod entry;
pub(in crate::db) mod envelope;
mod key;
mod pk_equivalence;
mod plan;
pub(in crate::db) mod predicate;
mod range;
mod readers;
mod scan;
mod store;

pub(in crate::db) use entry::{
    IndexEntry, IndexEntryCorruption, IndexEntryExistenceWitness, IndexEntryMembership,
    RawIndexEntry,
};
pub(in crate::db) use envelope::{
    KeyEnvelope, envelope_is_empty, key_within_envelope, resume_bounds_for_continuation,
    validate_index_scan_continuation_advancement,
};
pub(in crate::db) use key::{
    EncodedValue, IndexId, IndexKey, IndexKeyKind, RawIndexKey, derive_index_expression_value,
    encode_canonical_index_component_from_storage_key,
};
pub(in crate::db) use pk_equivalence::{PrimaryKeyEquivalenceError, primary_key_matches_value};
pub(in crate::db) use plan::{
    IndexDelta, IndexDeltaGroup, IndexMembershipDelta, IndexMutationPlan, IndexPlanReadView,
    plan_index_mutation_for_slot_reader_structural,
};
pub(in crate::db) use predicate::{
    IndexCompareOp, IndexCompilePolicy, IndexLiteral, IndexPredicateProgram,
    canonical_index_predicate, compile_index_program, compile_index_program_for_targets,
};
#[cfg(test)]
pub(in crate::db) use range::raw_keys_for_encoded_prefix_with_kind;
pub(in crate::db) use range::{
    IndexBoundsSpec, IndexRangeBoundEncodeError, TextPrefixBoundMode, build_index_bounds,
    raw_keys_for_component_prefix_with_kind, starts_with_component_bounds,
};
pub(in crate::db) use readers::{
    IndexEntryReader, PrimaryRowReader, SealedIndexEntryReader, SealedPrimaryRowReader,
    SealedStructuralIndexEntryReader, SealedStructuralPrimaryRowReader, StructuralIndexEntryReader,
    StructuralPrimaryRowReader,
};
pub use store::{IndexState, IndexStore};