Add some arguments to do-random subcommand.

This commit is contained in:
Jesse Brault 2024-11-23 07:17:03 -06:00
parent b7d443d093
commit 749bd0e2bc

View File

@ -2,7 +2,7 @@ mod bst;
mod stack; mod stack;
mod sort; mod sort;
use clap::{Parser, Subcommand}; use clap::{Args, Parser, Subcommand};
use rand::Rng; use rand::Rng;
use bst::BinarySearchTree; use bst::BinarySearchTree;
use stack::Stack; use stack::Stack;
@ -17,7 +17,16 @@ struct Cli {
#[derive(Subcommand, Debug)] #[derive(Subcommand, Debug)]
enum Command { enum Command {
Default, Default,
DoRandom, DoRandom(DoRandomArgs),
}
#[derive(Args, Debug)]
struct DoRandomArgs {
#[arg(long)]
min: i32,
#[arg(long)]
max: i32,
} }
struct Greeter { struct Greeter {
@ -91,12 +100,12 @@ fn do_default() {
println!("sorted chars: {:?}", sorted_chars); println!("sorted chars: {:?}", sorted_chars);
} }
fn do_random() { fn do_random(args: &DoRandomArgs) {
let mut range = rand::thread_rng(); let mut range = rand::thread_rng();
let mut numbers = [0; 100]; let mut numbers = [0; 100];
let mut i = 0; let mut i = 0;
while i < numbers.len() { while i < numbers.len() {
numbers[i] = range.gen_range(1..100); numbers[i] = range.gen_range(args.min..args.max);
i += 1; i += 1;
} }
// println!("before sorting: {:?}", numbers); // println!("before sorting: {:?}", numbers);
@ -113,8 +122,8 @@ fn main() {
Command::Default => { Command::Default => {
do_default(); do_default();
} }
Command::DoRandom => { Command::DoRandom(args) => {
do_random(); do_random(&args);
} }
} }
} }