Splitting parser feature into multiple subfeatures to reduce dependency bloat

This commit is contained in:
Christopher Dryden
2025-12-03 00:12:22 +00:00
parent 40db48925e
commit f90846824f
17 changed files with 72 additions and 53 deletions
+32 -33
View File
@@ -196,9 +196,9 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
[[package]]
name = "cc"
version = "1.2.46"
version = "1.2.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36"
checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -231,18 +231,18 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.51"
version = "4.5.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5"
checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8"
dependencies = [
"clap_builder",
]
[[package]]
name = "clap_builder"
version = "4.5.51"
version = "4.5.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a"
checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00"
dependencies = [
"anstream",
"anstyle",
@@ -325,9 +325,9 @@ dependencies = [
[[package]]
name = "crc"
version = "3.3.0"
version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675"
checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
dependencies = [
"crc-catalog",
]
@@ -875,9 +875,9 @@ dependencies = [
[[package]]
name = "js-sys"
version = "0.3.82"
version = "0.3.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -894,9 +894,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.177"
version = "0.2.178"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
[[package]]
name = "libfuzzer-sys"
@@ -928,9 +928,9 @@ checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
[[package]]
name = "log"
version = "0.4.28"
version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "md-5"
@@ -1083,9 +1083,9 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
[[package]]
name = "parse_datetime"
version = "0.13.2"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4955561bc7aa4c40afcfd2a8c34297b13164ae9ac3b30ac348737befdc98e4c"
checksum = "acea383beda9652270f3c9678d83aa58cbfc16880343cae0c0c8c7d6c0974132"
dependencies = [
"jiff",
"num-traits",
@@ -1417,9 +1417,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "syn"
version = "2.0.110"
version = "2.0.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea"
checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
dependencies = [
"proc-macro2",
"quote",
@@ -1737,7 +1737,6 @@ dependencies = [
"bigdecimal",
"blake2b_simd",
"blake3",
"bstr",
"clap",
"crc-fast",
"data-encoding",
@@ -1846,9 +1845,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen"
version = "0.2.105"
version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
dependencies = [
"cfg-if",
"once_cell",
@@ -1859,9 +1858,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.105"
version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1869,9 +1868,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.105"
version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
dependencies = [
"bumpalo",
"proc-macro2",
@@ -1882,9 +1881,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.105"
version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
dependencies = [
"unicode-ident",
]
@@ -2051,9 +2050,9 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
[[package]]
name = "winnow"
version = "0.7.13"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
dependencies = [
"memchr",
]
@@ -2107,18 +2106,18 @@ checksum = "9b3a41ce106832b4da1c065baa4c31cf640cf965fa1483816402b7f6b96f0a64"
[[package]]
name = "zerocopy"
version = "0.8.27"
version = "0.8.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.8.27"
version = "0.8.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
dependencies = [
"proc-macro2",
"quote",
+1 -1
View File
@@ -23,7 +23,7 @@ gcd = { workspace = true }
libc = { workspace = true }
uucore = { workspace = true, features = [
"format",
"parser",
"parser-size",
"quoting-style",
"fs",
] }
+1 -1
View File
@@ -19,7 +19,7 @@ path = "src/df.rs"
[dependencies]
clap = { workspace = true }
uucore = { workspace = true, features = ["libc", "fsext", "parser", "fs"] }
uucore = { workspace = true, features = ["libc", "fsext", "parser-size", "fs"] }
unicode-width = { workspace = true }
thiserror = { workspace = true }
fluent = { workspace = true }
+2 -1
View File
@@ -24,7 +24,8 @@ clap = { workspace = true }
uucore = { workspace = true, features = [
"format",
"fsext",
"parser",
"parser-size",
"parser-glob",
"time",
"safe-traversal",
] }
+1 -1
View File
@@ -22,7 +22,7 @@ clap = { workspace = true }
memchr = { workspace = true }
thiserror = { workspace = true }
uucore = { workspace = true, features = [
"parser",
"parser-size",
"ringbuffer",
"lines",
"fs",
+2 -1
View File
@@ -36,7 +36,8 @@ uucore = { workspace = true, features = [
"fs",
"fsext",
"fsxattr",
"parser",
"parser-size",
"parser-glob",
"quoting-style",
"time",
"version-cmp",
+1 -1
View File
@@ -21,7 +21,7 @@ path = "src/od.rs"
byteorder = { workspace = true }
clap = { workspace = true }
half = { workspace = true }
uucore = { workspace = true, features = ["parser"] }
uucore = { workspace = true, features = ["parser-size"] }
fluent = { workspace = true }
libc.workspace = true
+1 -1
View File
@@ -20,7 +20,7 @@ path = "src/shred.rs"
[dependencies]
clap = { workspace = true }
rand = { workspace = true }
uucore = { workspace = true, features = ["parser"] }
uucore = { workspace = true, features = ["parser-size"] }
libc = { workspace = true }
fluent = { workspace = true }
+2 -2
View File
@@ -34,7 +34,7 @@ self_cell = { workspace = true }
tempfile = { workspace = true }
thiserror = { workspace = true }
unicode-width = { workspace = true }
uucore = { workspace = true, features = ["fs", "parser", "version-cmp"] }
uucore = { workspace = true, features = ["fs", "parser-size", "version-cmp"] }
fluent = { workspace = true }
nix = { workspace = true }
@@ -44,7 +44,7 @@ tempfile = { workspace = true }
uucore = { workspace = true, features = [
"benchmark",
"fs",
"parser",
"parser-size",
"version-cmp",
"i18n-collator",
] }
+1 -1
View File
@@ -20,7 +20,7 @@ path = "src/split.rs"
[dependencies]
clap = { workspace = true }
memchr = { workspace = true }
uucore = { workspace = true, features = ["fs", "parser"] }
uucore = { workspace = true, features = ["fs", "parser-size"] }
thiserror = { workspace = true }
fluent = { workspace = true }
+1 -1
View File
@@ -22,7 +22,7 @@ path = "src/stdbuf.rs"
clap = { workspace = true }
libstdbuf = { package = "uu_stdbuf_libstdbuf", version = "0.4.0", path = "src/libstdbuf" }
tempfile = { workspace = true }
uucore = { workspace = true, features = ["parser"] }
uucore = { workspace = true, features = ["parser-size"] }
thiserror = { workspace = true }
fluent = { workspace = true }
+1 -1
View File
@@ -23,7 +23,7 @@ clap = { workspace = true }
libc = { workspace = true }
memchr = { workspace = true }
notify = { workspace = true }
uucore = { workspace = true, features = ["fs", "parser"] }
uucore = { workspace = true, features = ["fs", "parser-size"] }
same-file = { workspace = true }
fluent = { workspace = true }
+1 -1
View File
@@ -19,7 +19,7 @@ path = "src/truncate.rs"
[dependencies]
clap = { workspace = true }
uucore = { workspace = true, features = ["parser"] }
uucore = { workspace = true, features = ["parser-size"] }
fluent = { workspace = true }
[[bin]]
+8 -5
View File
@@ -22,7 +22,7 @@ workspace = true
path = "src/lib/lib.rs"
[dependencies]
bstr = { workspace = true }
bstr = { workspace = true, optional = true }
chrono = { workspace = true, optional = true }
clap = { workspace = true }
uucore_procs = { workspace = true }
@@ -102,7 +102,7 @@ xattr = { workspace = true, optional = true }
tempfile = { workspace = true }
[target.'cfg(target_os = "linux")'.dependencies]
procfs = { workspace = true }
procfs = { workspace = true, optional = true }
[target.'cfg(target_os = "windows")'.dependencies]
winapi-util = { workspace = true, optional = true }
@@ -129,7 +129,7 @@ entries = ["libc"]
extendedbigdecimal = ["bigdecimal", "num-traits"]
fast-inc = []
fs = ["dunce", "libc", "winapi-util", "windows-sys"]
fsext = ["libc", "windows-sys"]
fsext = ["libc", "windows-sys", "bstr"]
fsxattr = ["xattr"]
hardware = []
lines = []
@@ -138,7 +138,7 @@ format = [
"bigdecimal",
"extendedbigdecimal",
"itertools",
"parser",
"parser-num",
"num-traits",
"quoting-style",
]
@@ -149,7 +149,10 @@ i18n-decimal = ["i18n-common", "icu_decimal", "icu_provider"]
mode = ["libc"]
perms = ["entries", "libc", "walkdir"]
buf-copy = []
parser = ["extendedbigdecimal", "glob", "num-traits"]
parser-num = ["extendedbigdecimal", "num-traits"]
parser-size = ["parser-num", "procfs"]
parser-glob = ["glob"]
parser = ["parser-num", "parser-size", "parser-glob"]
pipes = []
process = ["libc"]
proc-info = ["tty", "walkdir"]
+6 -1
View File
@@ -32,7 +32,12 @@ pub mod fsext;
pub mod i18n;
#[cfg(feature = "lines")]
pub mod lines;
#[cfg(feature = "parser")]
#[cfg(any(
feature = "parser",
feature = "parser-num",
feature = "parser-size",
feature = "parser-glob"
))]
pub mod parser;
#[cfg(feature = "quoting-style")]
pub mod quoting_style;
@@ -4,8 +4,13 @@
// file that was distributed with this source code.
// spell-checker:ignore extendedbigdecimal
#[cfg(any(feature = "parser", feature = "parser-num"))]
pub mod num_parser;
#[cfg(any(feature = "parser", feature = "parser-glob"))]
pub mod parse_glob;
#[cfg(any(feature = "parser", feature = "parser-size"))]
pub mod parse_size;
#[cfg(any(feature = "parser", feature = "parser-num"))]
pub mod parse_time;
#[cfg(any(feature = "parser", feature = "parser-num"))]
pub mod shortcut_value_parser;
+6 -1
View File
@@ -60,7 +60,12 @@ pub use crate::features::hardware;
pub use crate::features::i18n;
#[cfg(feature = "lines")]
pub use crate::features::lines;
#[cfg(feature = "parser")]
#[cfg(any(
feature = "parser",
feature = "parser-num",
feature = "parser-size",
feature = "parser-glob"
))]
pub use crate::features::parser;
#[cfg(feature = "quoting-style")]
pub use crate::features::quoting_style;