diff --git a/src/bin/main.rs b/src/bin/main.rs index e694803..799f4f4 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -1,40 +1,69 @@ +use std::env; +use std::fmt::Display; +use std::process::ExitCode; use lib::submit_with_name; -fn main() { - let mut name = String::from("Jonah"); +fn main() -> ExitCode { + let args: Vec = env::args().collect(); + if args.len() < 2 { + eprintln!("Usage: main NAME"); + return ExitCode::FAILURE; + } + + let mut name = args[1].clone(); loop { - let name_temp: &str = &name; + println!("\nAttempting to solve for \"{}\"", &name); + print!("Solving challenge 01_welcome... "); let (n, x) = lib::challenges::c1_welcome::solve(); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x)); + submit_or_fail(&name, n, x.clone()); - let (n, x) = lib::challenges::c2_these_numbers_are_big::solve(name_temp); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x.clone())); + print!("Solving challenge 02_these_numbers_are_big... "); + let (n, x) = lib::challenges::c2_these_numbers_are_big::solve(&name); + submit_or_fail(&name, n, x.clone()); + print!("Solving challenge 03_are_you_still_doing_this_by_hand... "); let (n, x) = lib::challenges::c3_are_you_still_doing_this_by_hand::solve(n, x); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x.clone())); + submit_or_fail(&name, n, x.clone()); + print!("Solving challenge 04_broken_proof_of_work... "); let (n, x) = lib::challenges::c4_broken_proof_of_work::solve(n, x); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x.clone())); + submit_or_fail(&name, n, x.clone()); + print!("Solving challenge 05_what_the_bf... "); let (n, x) = lib::challenges::c5_what_the_bf::solve(n, x); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x.clone())); + submit_or_fail(&name, n, x.clone()); + print!("Solving challenge 06_automation_is_not_enough... "); let (n, x) = lib::challenges::c6_automation_is_not_enough::solve(n, x); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x.clone())); + submit_or_fail(&name, n, x.clone()); + print!("Solving challenge 07_weird_assembly_machine... "); let (n, x) = lib::challenges::c7_weird_assembly_machine::solve(n, x); - println!("n = {:?}\nx = {:?}\n{:?}\n", n, x, submit_with_name(name_temp, n, x.clone())); + submit_or_fail(&name, n, x.clone()); + print!("Solving challenge 08_revisit_everything... "); let (n, x) = match lib::challenges::c8_revisit_everything::solve(n, x) { Ok(res) => res, Err(w) => { - println!("name = \"{name}\"\nw = {w}\n"); + println!("Failed. (w = {})", w); name.insert_str(0, " "); continue; } }; - println!("n = {n:?}\nx = {x:?}\nname = \"{name}\"\n{:?}\n", submit_with_name(name_temp, n, x.clone())); + submit_or_fail(&name, n, x.clone()); + + println!("n = {}", n); + println!("x = {}", x); break; } + + ExitCode::SUCCESS +} + +fn submit_or_fail(name: &str, n: T1, x: T2) { + match submit_with_name(name, n, x) { + Ok(_) => println!("Success."), + Err(err) => println!("Failure: {}", err), + } } \ No newline at end of file