fst no-std mode === This is a fork of [fst](https://github.com/BurntSushi/fst) adding support for `no_std` targets (see [`no_std` usage](#no_std-usage) for details). If you're unsure whether to use this fork or the original one: Just use the original, chances are that's more up-to-date. ### Documentation https://docs.rs/fst-no-std ### Installation Simply add a corresponding entry to your `Cargo.toml` dependency list: ```toml,ignore [dependencies] fst-no-std = "0.4" ``` ### Example This example demonstrates building a set in memory and executing a fuzzy query against it. You'll need `fst_no_std = "0.4"` with the `levenshtein` feature enabled in your `Cargo.toml`. ```rust use fst_no_std::{IntoStreamer, Set}; use fst_no_std::automaton::Levenshtein; fn main() -> Result<(), Box> { // A convenient way to create sets in memory. let keys = vec!["fa", "fo", "fob", "focus", "foo", "food", "foul"]; let set = Set::from_iter(keys)?; // Build our fuzzy query. let lev = Levenshtein::new("foo", 1)?; // Apply our fuzzy query to the set we built. let stream = set.search(lev).into_stream(); let keys = stream.into_strs()?; assert_eq!(keys, vec!["fo", "fob", "foo", "food"]); Ok(()) } ``` Check out the documentation for a lot more examples! ### Cargo features * `std` - **Enabled** by default. Adds features that depend on the standard library. * `alloc` - **Enabled** by default. Adds features that depend on `alloc`. * `levenshtein` - **Disabled** by default. This adds the `Levenshtein` automaton to the `automaton` sub-module. This includes an additional dependency on `utf8-ranges` and `std`. ### `no_std` Usage You can use this crate in `no_std` environments by disabling default features, like so: ```toml,ignore [dependencies] fst-no-std = { version = "0.4", default-features = false } ``` This way `fst-no-std` will not depend on the standard library and not even allocate (!) at the cost of being rather kneecaped: You can not construct FSTs and the evailable querying features are limited to simple lookups. You can optionally enable the `alloc` feature which adds a dependency on the `alloc` crate (i.e. you will need a global allocator) but it enables all querying features. #### License Licensed under the MIT license.