Goodname is a tool to assist you with cool naming of your methods and software. Given a brief description of your method or software, this tool enumerates name candidates forming subsequences of the description (i.e., acronym).
For example, given description "Character-wise Double-array Dictionary" of your software, this tool will suggest some name candidates such as "crawdad" and "cheddar".
```rust use goodname::{Enumerator, Lexicon, Match};
let words = &["aa", "abaab", "abb", "bab", "bb", "bbb", "cbab", "ccbab"]; let lex = Lexicon::new(words).unwrap(); let text = "abAaB";
let enumerator = Enumerator::new(&lex, text).unwrap().prefixlen(2).unwrap(); let matched = enumerator.allsubsequences().unwrap();
asserteq!(matched.len(), 4); asserteq!( enumerator.formatmatch(&matched[0]), ("abaab".tostring(), "ABAAB".tostring()) ); asserteq!( enumerator.formatmatch(&matched[1]), ("bab".tostring(), "aBAaB".tostring()) ); asserteq!( enumerator.formatmatch(&matched[2]), ("Cbab".tostring(), "aBAaB".tostring()) ); asserteq!( enumerator.formatmatch(&matched[3]), ("CCbab".tostring(), "aBAaB".to_string()) ); ```