1use crate as usv;
2
3pub trait StrExt {
4 fn tokens(&self) -> usv::iter::Tokens;
5 fn units(&self) -> usv::iter::Units;
6 fn records(&self) -> usv::iter::Records;
7 fn groups(&self) -> usv::iter::Groups;
8 fn files(&self) -> usv::iter::Files;
9}
10
11impl StrExt for str {
12
13 fn tokens(&self) -> usv::iter::Tokens {
14 self.chars().into()
15 }
16
17 fn units(&self) -> usv::iter::Units {
18 self.chars().into()
19 }
20
21 fn records(&self) -> usv::iter::Records {
22 self.chars().into()
23 }
24
25 fn groups(&self) -> usv::iter::Groups {
26 self.chars().into()
27 }
28
29 fn files(&self) -> usv::iter::Files {
30 self.chars().into()
31 }
32
33}
34
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39 use crate as usv;
40 use crate::examples::*;
41
42 #[test]
43 fn tokens_test() {
44 let _actual: usv::iter::Tokens = EXAMPLE_FILES_STYLE_SYMBOLS.tokens();
45 }
46
47 #[test]
48 fn units_test() {
49 let _actual: usv::iter::Units = EXAMPLE_UNITS_STYLE_SYMBOLS.units();
50 }
51
52 #[test]
53 fn records_test() {
54 let _actual: usv::iter::Records = EXAMPLE_RECORDS_STYLE_SYMBOLS.records();
55 }
56
57 #[test]
58 fn groups_test() {
59 let _actual: usv::iter::Groups = EXAMPLE_GROUPS_STYLE_SYMBOLS.groups();
60 }
61
62 #[test]
63 fn files_test() {
64 let _actual: usv::iter::Files = EXAMPLE_FILES_STYLE_SYMBOLS.files();
65 }
66
67}