mod entry;
pub(in crate::db) mod envelope;
mod key;
mod pk_equivalence;
mod plan;
pub(in crate::db) mod predicate;
mod range;
mod scan;
mod store;
pub(in crate::db) use entry::{
IndexEntry, IndexEntryCorruption, IndexEntryExistenceWitness, 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::{
IndexEntryReader, IndexMutationPlan, PrimaryRowReader, SealedIndexEntryReader,
SealedPrimaryRowReader, SealedStructuralIndexEntryReader, SealedStructuralPrimaryRowReader,
StructuralIndexEntryReader, StructuralPrimaryRowReader,
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::{
IndexRangeBoundEncodeError, next_text_prefix, raw_bounds_for_semantic_index_component_range,
raw_keys_for_component_prefix_with_kind, raw_keys_for_encoded_prefix,
};
pub use store::{IndexState, IndexStore};