lance_select/lib.rs
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright The Lance Authors
3
4//! Row-selection primitives shared across Lance.
5//!
6//! This crate contains:
7//!
8//! * [`mask`] — `RowAddrMask` / `NullableRowAddrMask` and their underlying
9//! set types. These describe which rows survive a filter and are produced
10//! by scalar-index searches, prefilters, and the read planner.
11//! * [`result`] — `IndexExprResult` / `NullableIndexExprResult`: the
12//! certainty-tagged wrappers around a `RowAddrMask` returned by a scalar-
13//! index expression evaluation, plus their boolean algebra
14//! (`Not`/`BitAnd`/`BitOr`).
15//!
16//! These types were extracted from `lance-core` and `lance-index` so that
17//! consumers (benchmarks, downstream filtering code) can depend on the
18//! mask substrate without pulling in either of those larger crates.
19
20pub mod mask;
21pub mod result;
22
23pub use mask::{
24 NullableRowAddrMask, NullableRowAddrSet, RowAddrMask, RowAddrSelection, RowAddrTreeMap,
25 RowIdMask, RowIdSet, RowSetOps, bitmap_to_ranges, ranges_to_bitmap,
26};
27pub use result::{IndexExprResult, NullableIndexExprResult};