extern crate reqwest; extern crate tempfile; use crate::problem1::part1::Problem1; mod problem1; mod util; pub trait Problem { // Parses input and generates state fn new(input: &String) -> Self; // Runs on state fn run_part1(&self); fn run_part2(&self); } fn main() { let problem1 = Problem1::new(&util::get_problem(1)); problem1.run_part1(); problem1.run_part2(); }