Skip to main content

slate_core/
lib.rs

1//! # slate-core
2//!
3//! Foundational, dependency-light types shared across every Slate-ANN crate:
4//! identifiers, distance metrics, on-disk dtypes, the central error type, and
5//! the build/search/storage configuration structs.
6//!
7//! Keeping these here lets the SIMD, storage, PQ, graph, and index layers
8//! depend on a common vocabulary without depending on each other.
9
10#![forbid(unsafe_code)]
11#![doc(html_root_url = "https://docs.rs/slate-core")]
12
13pub mod config;
14pub mod cost;
15mod dtype;
16mod error;
17mod id;
18mod metric;
19pub mod search;
20
21pub use config::{
22    BuildConfig, HnswParams, IndexBackend, IoProfile, IvfParams, PqParams, SearchConfig,
23    StorageParams,
24};
25pub use cost::{DistanceCost, QueryCost, QueryCounters, StorageProfile};
26pub use dtype::Dtype;
27pub use error::{Error, Result};
28pub use id::VectorId;
29pub use metric::Metric;
30pub use search::{cmp_ascending, Neighbor, TopK};