#![allow(rustdoc::broken_intra_doc_links)]
pub mod analysis;
pub mod core;
pub mod mapping;
pub mod storage;
pub mod agg;
pub mod columnar;
pub mod inverted;
pub mod ip;
pub mod query;
pub mod search;
pub mod segment;
pub mod spatial;
pub mod store;
pub mod vector;
pub mod deletion;
pub mod index;
pub mod merge;
pub mod merge_policy;
pub mod reader;
pub mod writer;
pub use crate::core::{
DocId, FieldId, LuciError, Result, ScoreMode, Scorer, SegmentId, TwoPhaseIterator,
};
pub use crate::index::Index;
pub use crate::mapping::{
DynamicMode, FieldMapping, FieldType, Mapping, MappingBuilder, QuantizationType,
};
pub fn set_num_threads(num_threads: usize) -> Result<()> {
rayon::ThreadPoolBuilder::new()
.num_threads(num_threads)
.build_global()
.map_err(|e| LuciError::InvalidQuery(format!("failed to set thread pool: {e}")))
}