usv_to_asv/
lib.rs

1use std::convert::AsRef;
2
3pub mod examples; use examples::*;
4
5pub fn usv_to_asv<
6    S: AsRef<str> + Sized
7>(
8    usv: S,
9) -> String {
10    usv.as_ref()
11    .replace("\u{001F}\u{001E}\u{001D}\u{001C}", "\u{001C}")
12    .replace("\u{001F}\u{001E}\u{001D}", "\u{001D}")
13    .replace("\u{001F}\u{001E}", "\u{001E}")
14    .replace("\u{001F}", "\u{001F}") 
15    .replace("␟␞␝␜", "\u{001C}")
16    .replace("␟␞␝", "\u{001D}")
17    .replace("␟␞", "\u{001E}")
18    .replace("␟", "\u{001F}") 
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn symbols() {
27        assert_eq!(usv_to_asv(usv::examples::EXAMPLE_FILES_STYLE_SYMBOLS), EXAMPLE_ASV_FILES);
28    }
29
30    #[test]
31    fn controls() {
32        assert_eq!(usv_to_asv(usv::examples::EXAMPLE_FILES_STYLE_CONTROLS), EXAMPLE_ASV_FILES);
33    }
34
35}