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};