From 54638aced848cf630d9e3d4744419009f2700336 Mon Sep 17 00:00:00 2001 From: Takeru Ohta Date: Thu, 18 Sep 2025 19:32:58 +0900 Subject: [PATCH 1/2] chore: replace clap with noargs in examples --- Cargo.toml | 2 +- examples/insert_lines.rs | 35 ++++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6c5ea35..711db85 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ bitflags = { version = "2", default-features = false } serde = { version = "1", optional = true } [dev-dependencies] -clap = { version = "4", features = ["derive"] } +noargs = "0.4.1" rand = "0.9" serde_json = { version = "1" } diff --git a/examples/insert_lines.rs b/examples/insert_lines.rs index 6f149f7..467d42b 100644 --- a/examples/insert_lines.rs +++ b/examples/insert_lines.rs @@ -1,22 +1,29 @@ -use clap::Parser; use patricia_tree::PatriciaSet; use std::collections::{BTreeSet, HashSet}; use std::io::BufRead; -#[derive(Parser)] -struct Args { - #[clap( - long, - default_value = "patricia", - value_parser = clap::builder::PossibleValuesParser::new(["patricia", "hash", "btree", "count"]) - )] - kind: String, -} +fn main() -> noargs::Result<()> { + let mut args = noargs::raw_args(); + noargs::HELP_FLAG.take_help(&mut args); -fn main() { - let args = Args::parse(); + let kind = noargs::opt("kind") + .doc("Data structure kindt") + .ty("patricia | hash | btree | count") + .default("patricia") + .take(&mut args) + .then(|a| { + let value = a.value(); + match value { + "patricia" | "hash" | "btree" | "count" => Ok(value.to_string()), + _ => Err("must be one of: patricia, hash, btree, count"), + } + })?; + if let Some(help) = args.finish()? { + print!("{help}"); + return Ok(()); + } - match args.kind.as_str() { + match kind.as_str() { "patricia" => { let mut set = PatriciaSet::new(); each_line(|line| { @@ -47,6 +54,8 @@ fn main() { } _ => unreachable!(), } + + Ok(()) } fn each_line(mut f: F) From b25f4d28e661d88a081e2e816af36879de0175bb Mon Sep 17 00:00:00 2001 From: Takeru Ohta Date: Thu, 18 Sep 2025 19:34:11 +0900 Subject: [PATCH 2/2] fix: replace deprecated rand::thread_rng with rand::rng --- benches/bench.rs | 2 +- src/map.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/benches/bench.rs b/benches/bench.rs index be86fb1..0a80f9e 100644 --- a/benches/bench.rs +++ b/benches/bench.rs @@ -37,7 +37,7 @@ fn bench_removal(b: &mut test::Bencher) { } let mut values = (0..MAX).collect::>(); - values.shuffle(&mut rand::thread_rng()); + values.shuffle(&mut rand::rng()); let mut values = values.iter().cycle(); b.iter(|| { diff --git a/src/map.rs b/src/map.rs index ec02cbc..fe44037 100644 --- a/src/map.rs +++ b/src/map.rs @@ -815,7 +815,7 @@ mod tests { #[cfg_attr(miri, ignore)] fn large_map_works() { let mut input = (0..10000).map(|i| (i.to_string(), i)).collect::>(); - input.shuffle(&mut rand::thread_rng()); + input.shuffle(&mut rand::rng()); // Insert let mut map = input.iter().cloned().collect::>();