std_helper/string/split_at/
mod.rs

1mod str;
2mod string;
3
4use super::StrHelper;
5
6impl StrHelper {
7    /// split ```self''' at index and get ```(Option<StrHelper>, Option<StrHelper>)```.
8    ///
9    /// # Example:
10    /// ```
11    /// #[macro_use] extern crate std_helper;
12    /// use std_helper::StrHelper;
13    ///
14    /// let helper = str!("Crab is Rust!");
15    ///
16    /// let crab = helper.split_at(4).0.unwrap();
17    /// assert_eq!(crab.as_str(), "Crab");
18    /// ```
19    pub fn split_at(&self, mid: usize) -> (Option<StrHelper>, Option<StrHelper>) {
20        let values = self
21            .string
22            .split_at(mid);
23
24        (Some(StrHelper::new(values.0)), Some(StrHelper::new(values.1)))
25    }
26
27    /// split ```self''' at indexes and get ```StrHelper```.
28    ///
29    /// # Example:
30    /// ```
31    /// #[macro_use] extern crate std_helper;
32    /// use std_helper::StrHelper;
33    ///
34    /// let helper = str!("Crab is Rust!");
35    ///
36    /// let is = helper.split_on_the_sides_at((5, 7)).unwrap();
37    /// assert_eq!(is.as_str(), "is");
38    /// ```
39    pub fn split_on_the_sides_at(&self, mid: (usize, usize)) -> Option<StrHelper> {
40        let v = self
41            .split_str_at(mid.0).1?
42            .split_at(mid.1 - mid.0).0;
43
44        Some(StrHelper::new(v))
45    }
46}