From 3ec3849739a8a52bf18223d9833f6e6b50c6d667 Mon Sep 17 00:00:00 2001 From: Christopher Armstrong Date: Fri, 17 Oct 2025 09:29:56 -0400 Subject: [PATCH] uucore: add parse_size_non_zero_u64 which fails parsing 0 --- src/uucore/src/lib/features/parser/parse_size.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/uucore/src/lib/features/parser/parse_size.rs b/src/uucore/src/lib/features/parser/parse_size.rs index da67a7602..f6f0f1399 100644 --- a/src/uucore/src/lib/features/parser/parse_size.rs +++ b/src/uucore/src/lib/features/parser/parse_size.rs @@ -361,6 +361,15 @@ pub fn parse_size_u64(size: &str) -> Result { Parser::default().parse_u64(size) } +/// Same as `parse_size_u64()`, except 0 fails to parse +pub fn parse_size_non_zero_u64(size: &str) -> Result { + let v = Parser::default().parse_u64(size)?; + if v == 0 { + return Err(ParseSizeError::ParseFailure("0".to_string())); + } + Ok(v) +} + /// Same as `parse_size_u64()` - deprecated #[deprecated = "Please use parse_size_u64(size: &str) -> Result OR parse_size_u128(size: &str) -> Result instead."] pub fn parse_size(size: &str) -> Result {