1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use std::collections::HashSet;

use super::Grammeme;


#[derive(Debug, Default, Clone, PartialEq, Eq)]
pub struct GrammemeSet {
    pub set: HashSet<Grammeme>
}


regex!(SEP, r"(,| )");


impl GrammemeSet {
    pub fn from_str<'s, S>(s: S) -> Self where S: AsRef<str> {
        GrammemeSet {
            set: SEP.split(s.as_ref())
                .map(|g: &str| Grammeme::new(g) )
                .collect()
        }
    }
}