From a937aa5117065d5f3938eee8b29b6ddb2c93a8ac Mon Sep 17 00:00:00 2001 From: Nicolas Boichat Date: Fri, 4 Apr 2025 13:17:44 +0200 Subject: [PATCH] uucore: Move extendedbigdecimal to its own feature This will be needed later on so that we can split format and parse features. --- src/uu/seq/Cargo.toml | 8 ++++++-- src/uu/seq/src/number.rs | 2 +- src/uu/seq/src/numberparse.rs | 4 ++-- src/uu/seq/src/seq.rs | 3 ++- src/uucore/Cargo.toml | 11 +++++++++-- src/uucore/src/lib/features.rs | 4 ++++ .../lib/features/{format => }/extendedbigdecimal.rs | 2 +- src/uucore/src/lib/features/format/mod.rs | 3 +-- src/uucore/src/lib/features/format/num_parser.rs | 4 ++-- src/uucore/src/lib/lib.rs | 4 +++- 10 files changed, 31 insertions(+), 14 deletions(-) rename src/uucore/src/lib/features/{format => }/extendedbigdecimal.rs (99%) diff --git a/src/uu/seq/Cargo.toml b/src/uu/seq/Cargo.toml index 554deab4b..fa20defe0 100644 --- a/src/uu/seq/Cargo.toml +++ b/src/uu/seq/Cargo.toml @@ -1,4 +1,4 @@ -# spell-checker:ignore bigdecimal cfgs +# spell-checker:ignore bigdecimal cfgs extendedbigdecimal [package] name = "uu_seq" version = "0.0.30" @@ -23,7 +23,11 @@ clap = { workspace = true } num-bigint = { workspace = true } num-traits = { workspace = true } thiserror = { workspace = true } -uucore = { workspace = true, features = ["format", "quoting-style"] } +uucore = { workspace = true, features = [ + "extendedbigdecimal", + "format", + "quoting-style", +] } [[bin]] name = "seq" diff --git a/src/uu/seq/src/number.rs b/src/uu/seq/src/number.rs index b70ba446e..f23e42b1c 100644 --- a/src/uu/seq/src/number.rs +++ b/src/uu/seq/src/number.rs @@ -5,7 +5,7 @@ // spell-checker:ignore extendedbigdecimal use num_traits::Zero; -use uucore::format::ExtendedBigDecimal; +use uucore::extendedbigdecimal::ExtendedBigDecimal; /// A number with a specified number of integer and fractional digits. /// diff --git a/src/uu/seq/src/numberparse.rs b/src/uu/seq/src/numberparse.rs index 11a9df076..c8f0bee67 100644 --- a/src/uu/seq/src/numberparse.rs +++ b/src/uu/seq/src/numberparse.rs @@ -12,7 +12,7 @@ use std::str::FromStr; use uucore::format::num_parser::{ExtendedParser, ExtendedParserError}; use crate::number::PreciseNumber; -use uucore::format::ExtendedBigDecimal; +use uucore::extendedbigdecimal::ExtendedBigDecimal; /// An error returned when parsing a number fails. #[derive(Debug, PartialEq, Eq)] @@ -126,7 +126,7 @@ impl FromStr for PreciseNumber { #[cfg(test)] mod tests { use bigdecimal::BigDecimal; - use uucore::format::ExtendedBigDecimal; + use uucore::extendedbigdecimal::ExtendedBigDecimal; use crate::number::PreciseNumber; use crate::numberparse::ParseNumberError; diff --git a/src/uu/seq/src/seq.rs b/src/uu/seq/src/seq.rs index b51df9802..27336c59f 100644 --- a/src/uu/seq/src/seq.rs +++ b/src/uu/seq/src/seq.rs @@ -10,8 +10,9 @@ use clap::{Arg, ArgAction, Command}; use num_traits::Zero; use uucore::error::{FromIo, UResult}; +use uucore::extendedbigdecimal::ExtendedBigDecimal; use uucore::format::num_format::FloatVariant; -use uucore::format::{ExtendedBigDecimal, Format, num_format}; +use uucore::format::{Format, num_format}; use uucore::{format_usage, help_about, help_usage}; mod error; diff --git a/src/uucore/Cargo.toml b/src/uucore/Cargo.toml index c061ca75f..f94919e69 100644 --- a/src/uucore/Cargo.toml +++ b/src/uucore/Cargo.toml @@ -1,4 +1,4 @@ -# spell-checker:ignore (features) bigdecimal zerocopy +# spell-checker:ignore (features) bigdecimal zerocopy extendedbigdecimal [package] name = "uucore" @@ -92,11 +92,18 @@ colors = [] checksum = ["data-encoding", "thiserror", "sum"] encoding = ["data-encoding", "data-encoding-macro", "z85"] entries = ["libc"] +extendedbigdecimal = ["bigdecimal", "num-traits"] fs = ["dunce", "libc", "winapi-util", "windows-sys"] fsext = ["libc", "windows-sys"] fsxattr = ["xattr"] lines = [] -format = ["bigdecimal", "itertools", "num-traits", "quoting-style"] +format = [ + "bigdecimal", + "extendedbigdecimal", + "itertools", + "num-traits", + "quoting-style", +] mode = ["libc"] perms = ["entries", "libc", "walkdir"] buf-copy = [] diff --git a/src/uucore/src/lib/features.rs b/src/uucore/src/lib/features.rs index 64adb78d2..6c0de6f61 100644 --- a/src/uucore/src/lib/features.rs +++ b/src/uucore/src/lib/features.rs @@ -3,6 +3,8 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. // features ~ feature-gated modules (core/bundler file) +// +// spell-checker:ignore (features) extendedbigdecimal #[cfg(feature = "backup-control")] pub mod backup_control; @@ -16,6 +18,8 @@ pub mod colors; pub mod custom_tz_fmt; #[cfg(feature = "encoding")] pub mod encoding; +#[cfg(feature = "extendedbigdecimal")] +pub mod extendedbigdecimal; #[cfg(feature = "format")] pub mod format; #[cfg(feature = "fs")] diff --git a/src/uucore/src/lib/features/format/extendedbigdecimal.rs b/src/uucore/src/lib/features/extendedbigdecimal.rs similarity index 99% rename from src/uucore/src/lib/features/format/extendedbigdecimal.rs rename to src/uucore/src/lib/features/extendedbigdecimal.rs index 07c8b4621..a023a69d8 100644 --- a/src/uucore/src/lib/features/format/extendedbigdecimal.rs +++ b/src/uucore/src/lib/features/extendedbigdecimal.rs @@ -235,7 +235,7 @@ mod tests { use bigdecimal::BigDecimal; use num_traits::Zero; - use crate::format::extendedbigdecimal::ExtendedBigDecimal; + use crate::extendedbigdecimal::ExtendedBigDecimal; #[test] fn test_addition_infinity() { diff --git a/src/uucore/src/lib/features/format/mod.rs b/src/uucore/src/lib/features/format/mod.rs index 4a0a1a979..5deb5cb75 100644 --- a/src/uucore/src/lib/features/format/mod.rs +++ b/src/uucore/src/lib/features/format/mod.rs @@ -33,14 +33,13 @@ mod argument; mod escape; -pub mod extendedbigdecimal; pub mod human; pub mod num_format; pub mod num_parser; mod spec; +use crate::extendedbigdecimal::ExtendedBigDecimal; pub use argument::*; -pub use extendedbigdecimal::ExtendedBigDecimal; pub use spec::Spec; use std::{ error::Error, diff --git a/src/uucore/src/lib/features/format/num_parser.rs b/src/uucore/src/lib/features/format/num_parser.rs index 1ab889184..083a6ca05 100644 --- a/src/uucore/src/lib/features/format/num_parser.rs +++ b/src/uucore/src/lib/features/format/num_parser.rs @@ -15,7 +15,7 @@ use num_traits::Signed; use num_traits::ToPrimitive; use num_traits::Zero; -use crate::format::extendedbigdecimal::ExtendedBigDecimal; +use crate::extendedbigdecimal::ExtendedBigDecimal; /// Base for number parsing #[derive(Clone, Copy, PartialEq)] @@ -486,7 +486,7 @@ mod tests { use bigdecimal::BigDecimal; - use crate::format::ExtendedBigDecimal; + use crate::extendedbigdecimal::ExtendedBigDecimal; use super::{ExtendedParser, ExtendedParserError}; diff --git a/src/uucore/src/lib/lib.rs b/src/uucore/src/lib/lib.rs index 8cdd1319f..63a8162f7 100644 --- a/src/uucore/src/lib/lib.rs +++ b/src/uucore/src/lib/lib.rs @@ -5,7 +5,7 @@ //! library ~ (core/bundler file) // #![deny(missing_docs)] //TODO: enable this // -// spell-checker:ignore sigaction SIGBUS SIGSEGV +// spell-checker:ignore sigaction SIGBUS SIGSEGV extendedbigdecimal // * feature-gated external crates (re-shared as public internal modules) #[cfg(feature = "libc")] @@ -50,6 +50,8 @@ pub use crate::features::colors; pub use crate::features::custom_tz_fmt; #[cfg(feature = "encoding")] pub use crate::features::encoding; +#[cfg(feature = "extendedbigdecimal")] +pub use crate::features::extendedbigdecimal; #[cfg(feature = "format")] pub use crate::features::format; #[cfg(feature = "fs")]