| Crates.io | darts |
| lib.rs | darts |
| version | 0.1.0 |
| created_at | 2019-06-25 10:44:57.953505+00 |
| updated_at | 2019-06-25 10:44:57.953505+00 |
| description | A double array trie, A Forward Maximum Matching Searcher. |
| homepage | |
| repository | https://github.com/andelf/rust-darts |
| max_upload_size | |
| id | 143439 |
| size | 28,137 |
This library is in alpha state, PRs are welcomed. An optional Forward Maximum Matching Searcher is provided when enabled by features.
Add it to your Cargo.toml:
[dependencies]
darts = "0.1"
then you are good to go. If you are using Rust 2015 you have to extern crate darts to your crate root as well.
use std::fs::File;
use darts::DoubleArrayTrie;
fn main() {
let mut f = File::open("./priv/dict.big.bincode").unwrap();
let da = DoubleArrayTrie::load(&mut f).unwrap();
let string = "中华人民共和国";
let prefixes = da.common_prefix_search(string).map(|matches| {
matches
.iter()
.map(|(end_idx, v)| {
&string[..end_idx]
})
.collect();
}).unwrap_or(vec![]);
assert_eq!(vec!["中", "中华", "中华人民", "中华人民共和国"], prefixes);
}
use std::fs::File;
use darts::DoubleArrayTrie;
fn main() {
let mut f = File::open("./priv/dict.big.bincode").unwrap();
let da = DoubleArrayTrie::load(&mut f).unwrap();
assert!(da.exact_match_search("东湖高新技术开发区").is_some());
}
searcher feature enables searcher for maximum forward matcherserialization feature enables saving and loading serialized DoubleArrayTrie data[dependencies]
darts = { version = "0.1", features = ["searcher", "serialization"] }
# It would take minutes, be patient.
time cargo test -- --nocapture --ignored test_dat_basic
cargo bench --all-features
This work is released under the MIT license. A copy of the license is provided in the LICENSE file.