std_helper/string/split/mod.rs
1mod str;
2mod string;
3
4use super::StrHelper;
5
6impl StrHelper {
7 /// split ```self''' at separators and get ```Vec<Option<StrHelper>>```.
8 ///
9 /// # Example:
10 /// ```
11 /// #[macro_use] extern crate std_helper;
12 /// use std_helper::StrHelper;
13 ///
14 /// let helper = str!("hello|g|cc");
15 ///
16 /// let g = helper.split("|").get(1).unwrap().clone();
17 /// assert_eq!(g.unwrap().as_str(), "g");
18 /// ```
19 pub fn split(&self, separator: &str) -> Vec<Option<StrHelper>> {
20 self.split_str(separator)
21 .iter()
22 .map(|v| Some(StrHelper::new((*v)?)))
23 .collect::<Vec<Option<StrHelper>>>()
24 }
25
26 /// split ```self''' at separators and get ```StrHelper'''.
27 ///
28 /// # Example:
29 /// ```
30 /// #[macro_use] extern crate std_helper;
31 /// use std_helper::StrHelper;
32 ///
33 /// let helper = str!("hello|world|rust");
34 ///
35 /// let part = helper.split_and_get("|", 1).unwrap();
36 /// assert_eq!(part.as_str(), "world");
37 /// ```
38 pub fn split_and_get(&self, separator: &str, n: usize) -> Option<StrHelper> {
39 let v = self
40 .split_and_get_str(separator, n)?;
41
42 Some(StrHelper::new(v))
43 }
44
45 /// split ```self''' at separators and get first ```StrHelper'''.
46 ///
47 /// # Example:
48 /// ```
49 /// #[macro_use] extern crate std_helper;
50 /// use std_helper::StrHelper;
51 ///
52 /// let helper = str!("hello|world|rust");
53 ///
54 /// let part = helper.split_and_get_first("|").unwrap();
55 /// assert_eq!(part.as_str(), "hello");
56 /// ```
57 pub fn split_and_get_first(&self, separator: &str) -> Option<StrHelper> {
58 self.split_and_get(separator, 0)
59 }
60
61 /// split ```self''' at separators and get last ```StrHelper'''.
62 ///
63 /// # Example:
64 /// ```
65 /// #[macro_use] extern crate std_helper;
66 /// use std_helper::StrHelper;
67 ///
68 /// let helper = str!("hello|world|rust");
69 ///
70 /// let part = helper.split_and_get_last("|").unwrap();
71 /// assert_eq!(part.as_str(), "rust");
72 /// ```
73 pub fn split_and_get_last(&self, separator: &str) -> Option<StrHelper> {
74 let v = self
75 .split_and_get_last_str(separator)?;
76
77 Some(StrHelper::new(v))
78 }
79
80 /// split ```self''' at separators on the sides and get ```StrHelper```.
81 ///
82 /// # Example:
83 /// ```
84 /// #[macro_use] extern crate std_helper;
85 /// use std_helper::StrHelper;
86 ///
87 /// let helper = str!("hello");
88 ///
89 /// let l = helper.split_on_the_sides(("e", "lo")).unwrap();
90 /// assert_eq!(l.as_str(), "l");
91 /// ```
92 pub fn split_on_the_sides(&self, separator: (&str, &str)) -> Option<StrHelper> {
93 let v = self
94 .split_str_on_the_sides(separator)?;
95
96 Some(StrHelper::new(v))
97 }
98}