Compare commits

..

No commits in common. '0dc3586ff792970c271ca57ff822d95e6fffbcf2' and 'f5e913f967300a171da86899430b657c3823cc1a' have entirely different histories.

@ -13,8 +13,6 @@ fn main()
{ {
let name = env!("CARGO_PKG_NAME"); let name = env!("CARGO_PKG_NAME");
println!("{} build.rs started...", name); println!("{} build.rs started...", name);
println!("{} build.rs finished", name); println!("{} build.rs finished", name);
} }

@ -7,28 +7,22 @@
* @brief pre-advent testing * @brief pre-advent testing
******************************************************************************/ ******************************************************************************/
use solver::solver::{Solver, SolverState}; use solver::solver::Solver;
pub struct Day0 pub struct Day0;
{
solver_state: SolverState,
num_fib_values: i32,
}
impl Solver for Day0 impl Solver for Day0
{ {
fn init(&mut self, _config: solver::solver::SolverState) -> Result<(), String> 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(()) return Ok(())
// todo!("Day0::init()")
} }
fn solve(&mut self, _input: String) -> Result<u64, String> fn solve(&mut self, _input: String) -> Result<u64, String>
{ {
let fibs = gen_fib_seq(self.num_fib_values, std::i64::MAX); // no max_val basically
println!("fib nums:");
print_fibs(fibs);
Ok(0) Ok(0)
} }
@ -42,40 +36,6 @@ impl Day0
{ {
pub fn new() -> Day0 pub fn new() -> Day0
{ {
Day0 { solver_state: SolverState::new(), num_fib_values: 5 } Day0 {}
}
}
// Helpers
/// stop_after: the number of fib values to generate
/// max_val: the maximum fib value to generate. Forces the function to
/// return even if stop_after is not met.
fn gen_fib_seq(stop_after: i32, max_val: i64) -> Vec<i64>
{
let mut a: i64 = 1;
let mut b: i64 = 1;
let mut nums: Vec<i64> = vec![];
nums.push(a);
for _ in 0..stop_after -1
{
nums.push(b);
let t = b;
b = a + b;
a = t;
if b >= max_val
{
break;
}
}
nums
}
fn print_fibs(fibs: Vec<i64>)
{
for (i, f) in fibs.iter().enumerate()
{
println!("{}: {}", i + 1, f);
} }
} }

@ -58,13 +58,13 @@ impl SolverState
self.options & (opt as u64) != 0 self.options & (opt as u64) != 0
} }
pub fn set_value(self: &mut SolverState, val: &str, key: &str) pub fn set_value(self: &mut SolverState, val: String, key: String)
{ {
self.values.insert(key.to_string(), val.to_string()); self.values.insert(key, val);
} }
pub fn get_value(self: &SolverState, key: &str) -> String pub fn get_value(self: &SolverState, key: String) -> String
{ {
self.values[&key.to_string()].clone() self.values[&key].clone()
} }
} }

@ -10,8 +10,7 @@ fn main()
// TODO: Grab command line args // TODO: Grab command line args
// TODO: Parse args into a SolverState // TODO: Parse args into a SolverState
let mut state = SolverState::new(); let state = SolverState::new();
state.set_value("50", "num_fib_values");
let _ = SolverOption::Debug; let _ = SolverOption::Debug;
let mut test_day = Day0::new(); let mut test_day = Day0::new();

Loading…
Cancel
Save