mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-08-01 13:37:48 +00:00
head: remove clippy::cognitive_complexity by moving some content in a function (#5366)
* head: remove a clippy::cognitive_complexity by moving some content into a function * Remove duplicate comment
This commit is contained in:
parent
91c8724fd5
commit
3e1d3caceb
1 changed files with 69 additions and 60 deletions
|
@ -13,7 +13,6 @@ pub enum ParseError {
|
|||
}
|
||||
/// Parses obsolete syntax
|
||||
/// head -NUM\[kmzv\] // spell-checker:disable-line
|
||||
#[allow(clippy::cognitive_complexity)]
|
||||
pub fn parse_obsolete(src: &str) -> Option<Result<impl Iterator<Item = OsString>, ParseError>> {
|
||||
let mut chars = src.char_indices();
|
||||
if let Some((_, '-')) = chars.next() {
|
||||
|
@ -30,7 +29,22 @@ pub fn parse_obsolete(src: &str) -> Option<Result<impl Iterator<Item = OsString>
|
|||
}
|
||||
}
|
||||
if has_num {
|
||||
match src[1..=num_end].parse::<usize>() {
|
||||
process_num_block(&src[1..=num_end], last_char, &mut chars)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
/// Processes the numeric block of the input string to generate the appropriate options.
|
||||
fn process_num_block(
|
||||
src: &str,
|
||||
last_char: char,
|
||||
chars: &mut std::str::CharIndices,
|
||||
) -> Option<Result<impl Iterator<Item = OsString>, ParseError>> {
|
||||
match src.parse::<usize>() {
|
||||
Ok(num) => {
|
||||
let mut quiet = false;
|
||||
let mut verbose = false;
|
||||
|
@ -38,7 +52,7 @@ pub fn parse_obsolete(src: &str) -> Option<Result<impl Iterator<Item = OsString>
|
|||
let mut multiplier = None;
|
||||
let mut c = last_char;
|
||||
loop {
|
||||
// not that here, we only match lower case 'k', 'c', and 'm'
|
||||
// note that here, we only match lower case 'k', 'c', and 'm'
|
||||
match c {
|
||||
// we want to preserve order
|
||||
// this also saves us 1 heap allocation
|
||||
|
@ -89,13 +103,8 @@ pub fn parse_obsolete(src: &str) -> Option<Result<impl Iterator<Item = OsString>
|
|||
}
|
||||
Err(_) => Some(Err(ParseError::Overflow)),
|
||||
}
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
/// Parses an -c or -n argument,
|
||||
/// the bool specifies whether to read from the end
|
||||
pub fn parse_num(src: &str) -> Result<(u64, bool), ParseSizeError> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue