fts_solver/lib.rs
1#![warn(missing_docs)]
2// Note: this overwrites the link in the README to point to the rust docs of the fts-sqlite crate.
3//! [fts_core]: https://docs.rs/fts_core/latest/fts_core/index.html
4//! [fts_axum]: https://docs.rs/fts_axum/latest/fts_axum/index.html
5//! [fts_solver]: https://docs.rs/fts_solver/latest/fts_solver/index.html
6//! [fts_sqlite]: https://docs.rs/fts_sqlite/latest/fts_sqlite/index.html
7#![doc = include_str!("../README.md")]
8
9/**
10 * The various solver implementations.
11 */
12mod impls;
13pub use impls::*;
14
15/**
16 * The core data types the solver implementations operate on.
17 */
18mod types;
19pub use types::*;
20
21/// Utilities for testing and CLI interface to the solver
22#[cfg(feature = "io")]
23pub mod io;
24
25/// Utilities for converting the derived QP to standard file formats
26pub mod export;
27
28// For reproducibility, we need explicitly ordered semantics in our collections.
29// Accordingly, we swap out the stdlib collections for those provided by `indexmap`.
30// Since we're swapping out these types already, we can benefit from a hash function
31// that is optimized for small collections.
32
33pub(crate) type HashSet<T> = indexmap::IndexSet<T, rustc_hash::FxBuildHasher>;