crate::ix!();
#[derive(Clone,Debug,PartialEq,Eq,Hash)]
pub struct StemmedToken(String);
impl StemmedToken {
pub fn as_str(&self) -> &str {
&self.0
}
}
impl FromStr for StemmedToken {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
let cleaned: String = s.chars().filter(|c| c.is_alphanumeric()).collect();
let stemmer = Stemmer::create(Algorithm::English);
let stemmed = stemmer.stem(&cleaned).to_string();
Ok(Self(stemmed))
}
}