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()`
|