generalized_suffix_tree/lib.rs
1//! # K-Truncated Generalized Suffix Tree
2//! Implementation of the [truncated suffix tree](https://pubmed.ncbi.nlm.nih.gov/18283030/)
3//! construction of which is performed in linear time
4//!
5//! ## Examples
6//!
7//! ```
8//! use generalized_suffix_tree::suffix_tree::KGST;
9//!
10//! // Initalize empty tree
11//! let mut tree: KGST<char, String> = KGST::new('$');
12//!
13//! // insert item with corresponding item id
14//! let item_string:Vec<char> = "MKAILVVLLYTFTTADADTLCIGYHANNSTDTVDTVLEKNVTVTHSVNLLENRHNGKLCKLRGVAPLHLGKCNIAGWILGNPECESLSTAGSWSYIVETSNPDNGTCYPGDFINYEELREQLSSVSSFEKFEIFPKTSSWPNHDTNRGVTAACPHDGAKSFYRNLLWLVKKEKENSYPMINKSYTNNKGKEVLVLWAIHHPATSADQQSLYQNANAYVFVGSSKYSKKFEPEIAARPKVRDQAGRMKYYWTLVEPGDKITFEATGNLVVPIYAFALKRNSGSGIIISDTSVHDCDTTCQTPNGAINTSLPFQNIHPVTIGECPKYVKSTKLRMATGLRNIPSIQSRGLFGAIAGFIEGGWTGMIDGWYGYHHQNEQGSGYAADLKSTQNAIDGITNKVNSVIEKMNTQFTAVGKEFNHLERRIENLNKKVDDGFLDIWTYNAELLVLLENERTLDYHDSNVKNLYEKVRSQLKNNAKEIGNGCFEFYHKCDDTCMESVKNGTYDYPKYSEEAKLNREEIDGVKLESTRIYQILAIYSTVASSLVLVVSLGAISFWMCSNGSLQCRICI".chars().collect();
15//! let item_id:String = "World".to_string();
16//! tree.insert(item_id.clone(), item_string.clone(),&0);
17//!
18//!
19//! // Query if some string is a substring in the tree
20//! let substring_match = tree.substring_match(&"STVASSLVLVVSLGAISFWMCSNGSLQCRICI".chars().collect::<Vec<char>>());
21//!
22//! // Query if some string is a suffix in the tree
23//! let suffix_match = tree.suffix_match(&"RGVAPLHLGKCNIAGWILGNPECESLSTAGSWSYIVE".chars().collect::<Vec<char>>());
24//!
25//! // Clear tree
26//! tree.clear();
27//! ```
28
29pub mod suffix_node;
30pub mod suffix_tree;
31pub mod data;
32pub mod utils;
33pub mod iter;