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}