RS.CLIPPY.MANUAL_SPLIT_ONCE
Replace `.splitn(2, pat)` with `.split_once(pat)`
This checker is a Clippy lint created by The Rust Project Contributors. The documentation shown here is a copy of the original documentation for: manual_split_once. Copyright ©2025 The Rust Team. All rights reserved.
What it does
Checks for usage 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()
Configuration
-
msrv: The minimum rust version that the project supports. Defaults to therust-versionfield inCargo.toml(default:
current version)