pub mod composite;
pub mod counter;
pub mod heuristic;
pub mod tex;
pub use composite::CompositeSyllableCounter;
pub use counter::SyllableCounter;
pub use heuristic::HeuristicSyllableCounter;
pub use tex::TexSyllableCounter;
pub enum SyllableCounterKind {
Tex(TexSyllableCounter),
Heuristic(HeuristicSyllableCounter),
Composite(CompositeSyllableCounter),
}
impl SyllableCounter for SyllableCounterKind {
fn count_syllables(&self, word: &str) -> i64 {
match self {
SyllableCounterKind::Tex(c) => c.count_syllables(word),
SyllableCounterKind::Heuristic(c) => c.count_syllables(word),
SyllableCounterKind::Composite(c) => c.count_syllables(word),
}
}
fn split_syllables(&self, word: &str) -> Vec<String> {
match self {
SyllableCounterKind::Tex(c) => c.split_syllables(word),
SyllableCounterKind::Heuristic(c) => c.split_syllables(word),
SyllableCounterKind::Composite(c) => c.split_syllables(word),
}
}
}