diff --git a/build.rs b/build.rs index 9ce1b61..262b9b7 100644 --- a/build.rs +++ b/build.rs @@ -13,6 +13,8 @@ fn main() { let name = env!("CARGO_PKG_NAME"); println!("{} build.rs started...", name); + + println!("{} build.rs finished", name); } \ No newline at end of file diff --git a/crates/day_0/input/input b/crates/day_0/input/input new file mode 100644 index 0000000..4701cc7 --- /dev/null +++ b/crates/day_0/input/input @@ -0,0 +1 @@ +150 \ No newline at end of file diff --git a/crates/day_0/input/input_test b/crates/day_0/input/input_test new file mode 100644 index 0000000..c5b431b --- /dev/null +++ b/crates/day_0/input/input_test @@ -0,0 +1 @@ +50 \ No newline at end of file diff --git a/crates/day_0/src/day_0.rs b/crates/day_0/src/day_0.rs index 1cf31ab..4dab139 100644 --- a/crates/day_0/src/day_0.rs +++ b/crates/day_0/src/day_0.rs @@ -7,22 +7,26 @@ * @brief pre-advent testing ******************************************************************************/ -use solver::solver::Solver; +use solver::solver::{Solver, SolverState}; -pub struct Day0; +pub struct Day0 +{ + solver_state: SolverState, + num_fib_values: i32, +} impl Solver for Day0 { fn init(&mut self, _config: solver::solver::SolverState) -> Result<(), String> { - + self.solver_state = _config.clone(); + self.num_fib_values = self.solver_state.get_value("num_fib_values").parse().expect("Could not parse num_fib_values"); return Ok(()) - // todo!("Day0::init()") } fn solve(&mut self, _input: String) -> Result { - let fibs = gen_fib_seq(50, std::i64::MAX / 2); + let fibs = gen_fib_seq(self.num_fib_values, std::i64::MAX); // no max_val basically println!("fib nums:"); print_fibs(fibs); Ok(0) @@ -38,7 +42,7 @@ impl Day0 { pub fn new() -> Day0 { - Day0 {} + Day0 { solver_state: SolverState::new(), num_fib_values: 5 } } } diff --git a/crates/solver/src/solver.rs b/crates/solver/src/solver.rs index 1b88dbb..9039eef 100644 --- a/crates/solver/src/solver.rs +++ b/crates/solver/src/solver.rs @@ -58,13 +58,13 @@ impl SolverState self.options & (opt as u64) != 0 } - pub fn set_value(self: &mut SolverState, val: String, key: String) + pub fn set_value(self: &mut SolverState, val: &str, key: &str) { - self.values.insert(key, val); + self.values.insert(key.to_string(), val.to_string()); } - pub fn get_value(self: &SolverState, key: String) -> String + pub fn get_value(self: &SolverState, key: &str) -> String { - self.values[&key].clone() + self.values[&key.to_string()].clone() } } \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index d8635b5..64a20c8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,8 @@ fn main() // TODO: Grab command line args // TODO: Parse args into a SolverState - let state = SolverState::new(); + let mut state = SolverState::new(); + state.set_value("50", "num_fib_values"); let _ = SolverOption::Debug; let mut test_day = Day0::new();