summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/src/docs/manual_split_once.txt
blob: 291ae447de08a6b80afb6c4960050e27abd7dae3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
### What it does
Checks for usages of `str::splitn(2, _)`

### Why is this bad?
`split_once` is both clearer in intent and slightly more efficient.

### Example
```
let s = "key=value=add";
let (key, value) = s.splitn(2, '=').next_tuple()?;
let value = s.splitn(2, '=').nth(1)?;

let mut parts = s.splitn(2, '=');
let key = parts.next()?;
let value = parts.next()?;
```

Use instead:
```
let s = "key=value=add";
let (key, value) = s.split_once('=')?;
let value = s.split_once('=')?.1;

let (key, value) = s.split_once('=')?;
```

### Limitations
The multiple statement variant currently only detects `iter.next()?`/`iter.next().unwrap()`
in two separate `let` statements that immediately follow the `splitn()`