From 4e83d73810052fe8ee4f0202ce11958013077bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Tue, 2 Mar 2021 18:09:24 +0100 Subject: [PATCH] Changed options structure and added verbose option. --- src/main.rs | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index bf4fe27..b19bf4f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,17 +16,33 @@ * along with this program. If not, see . */ -use std::env; +//use std::env; +use structopt::StructOpt; +use std::path::PathBuf; use std::collections::VecDeque; +#[derive(StructOpt)] +struct Opt { + #[structopt(short, long)] + verbose:bool, + //#[structopt(short, long)] + //import:Option, + n:usize, +} + fn main() { - let args:Vec = env::args().collect(); + //let args:Vec = env::args().collect(); + let opts = Opt::from_args(); // get the first `n` primes - let n:usize = args[1].parse().unwrap(); + //let n:usize = args[1].parse().unwrap(); + let n = opts.n; let mut primes:VecDeque = VecDeque::with_capacity(n); // first prime - println!("{}", 2); + if opts.verbose + { + println!("{}", 2); + } primes.push_back(2); let mut candidate:u64 = 3; @@ -46,9 +62,17 @@ fn main() { if is_prime { - println!("{}", candidate); + if opts.verbose + { + println!("{}", candidate); + } primes.push_back(candidate); } candidate += 2; } + + if !opts.verbose + { + println!("{}", primes.back().unwrap()); + } }