| Crates.io | fuse-rust |
| lib.rs | fuse-rust |
| version | 0.4.0 |
| created_at | 2020-10-02 10:46:06.367864+00 |
| updated_at | 2024-10-18 18:35:21.181558+00 |
| description | Fuse is a super lightweight library which provides a simple way to do fuzzy searching. Fuse-Rust is a port of Fuse-Swift, written purely in rust. |
| homepage | https://github.com/Blakeinstein/fuse-rust |
| repository | https://github.com/Blakeinstein/fuse-rust |
| max_upload_size | |
| id | 295309 |
| size | 1,860,057 |
Fuse is a super lightweight library which provides a simple way to do fuzzy searching.
Fuse-RS is a port of https://github.com/krisk/fuse-swift written purely in rust.
An example of a real use case, a search bar made using iced is also available.
Try it using
cargo run --package search_bar
Check all available examples and their source code here.
Use the feature flag "async" to also be able to use async functions.
fuse-rust = { version = ..., features = ["async"]}
The first step is to create a fuse object, with the necessary parameters. Fuse::default, returns the following parameters.
Fuse::default() = Fuse{
location: 0, // Approx where to start looking for the pattern
distance: 100, // Maximum distance the score should scale to
threshold: 0.6, // A threshold for guess work
max_pattern_length: 32, // max valid pattern length
is_case_sensitive: false,
tokenize: false, // the input search text should be tokenized
}
For how to implement individual searching operations, check the examples.
As given above, Fuse takes the following options
location: Approximately where in the text is the pattern expected to be found. Defaults to 0distance: Determines how close the match must be to the fuzzy location (specified above). An exact letter match which is distance characters away from the fuzzy location would score as a complete mismatch. A distance of 0 requires the match be at the exact location specified, a distance of 1000 would require a perfect match to be within 800 characters of the fuzzy location to be found using a 0.8 threshold. Defaults to 100threshold: At what point does the match algorithm give up. A threshold of 0.0 requires a perfect match (of both letters and location), a threshold of 1.0 would match anything. Defaults to 0.6maxPatternLength: The maximum valid pattern length. The longer the pattern, the more intensive the search operation will be. If the pattern exceeds the maxPatternLength, the search operation will return nil. Why is this important? Read this. Defaults to 32isCaseSensitive: Indicates whether comparisons should be case sensitive. Defaults to false