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}