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}