3 #![feature(custom_inner_attributes)]
4 #![warn(clippy::manual_split_once)]
5 #![allow(clippy::iter_skip_next, clippy::iter_nth_zero)]
7 extern crate itertools;
9 #[allow(unused_imports)]
10 use itertools::Itertools;
13 let _ = "key=value".splitn(2, '=').nth(2);
14 let _ = "key=value".splitn(2, '=').nth(1).unwrap();
15 let _ = "key=value".splitn(2, '=').skip(1).next().unwrap();
16 let (_, _) = "key=value".splitn(2, '=').next_tuple().unwrap();
18 let s = String::from("key=value");
19 let _ = s.splitn(2, '=').nth(1).unwrap();
21 let s = Box::<str>::from("key=value");
22 let _ = s.splitn(2, '=').nth(1).unwrap();
25 let _ = s.splitn(2, '=').skip(1).next().unwrap();
27 fn _f(s: &str) -> Option<&str> {
28 let _ = s.splitn(2, '=').nth(1)?;
29 let _ = s.splitn(2, '=').skip(1).next()?;
30 let _ = s.rsplitn(2, '=').nth(1)?;
31 let _ = s.rsplitn(2, '=').skip(1).next()?;
35 // Don't lint, slices don't have `split_once`
36 let _ = [0, 1, 2].splitn(2, |&x| x == 1).nth(1).unwrap();
38 // `rsplitn` gives the results in the reverse order of `rsplit_once`
39 let _ = "key=value".rsplitn(2, '=').nth(1).unwrap();
40 let (_, _) = "key=value".rsplitn(2, '=').next_tuple().unwrap();
41 let _ = s.rsplitn(2, '=').nth(1);
45 #![clippy::msrv = "1.51"]
46 // `str::split_once` was stabilized in 1.52. Do not lint this
47 let _ = "key=value".splitn(2, '=').nth(1).unwrap();
51 #![clippy::msrv = "1.52"]
52 let _ = "key=value".splitn(2, '=').nth(1).unwrap();