///|
/// Small fluent builder for application dictionaries.
pub struct Builder {
entries : Array[Entry]
} derive(Debug)
///|
pub fn Builder::new() -> Builder {
{ entries: [] }
}
///|
pub fn Builder::add(
self : Builder,
keyword : String,
label? : String = "",
weight? : Int = 1,
) -> Builder {
if keyword.length() > 0 {
self.entries.push({ keyword, label, weight })
}
self
}
///|
pub fn Builder::add_all(self : Builder, entries : ArrayView[Entry]) -> Builder {
for entry in entries {
if entry.keyword.length() > 0 {
self.entries.push(entry)
}
}
self
}
///|
pub fn Builder::to_lexicon(self : Builder) -> Lexicon {
compile(self.entries)
}
///|
pub fn Builder::to_automaton(self : Builder) -> Automaton {
Automaton::compile(self.entries)
}