1use crate::normalize::normalize;
5use crate::rules::*;
6
7pub mod normalize;
8pub mod rules;
9
10pub fn encode(s: &str) -> String {
11 let s = normalize(s);
12 let s = remove_repeats(&s);
13 let s = reduce_vowels(&s);
14 let s = replace_letters(&s);
15 let s = replace_sequences(&s);
16 s
17}
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22
23 #[test]
24 fn test_encoding() {
25 assert_eq!(encode("Литие"), "лата");
26 assert_eq!(encode("ладо"), "лата");
27 assert_eq!(encode("литье"), "лата");
28 assert_eq!(encode("летие"), "лата");
29 assert_eq!(encode("лeто"), "лата");
30 assert_eq!(encode("леди"), "лата");
31 }
32}