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