use crate::objective::EvaluatedSolution;
pub mod common;
pub mod local_search;
pub mod parallel_local_search;
pub mod parallel_tabu_search;
pub mod simulated_annealing;
pub mod tabu_search;
pub mod threshold_accepting;
pub trait Solver<S> {
fn solve(&self, initial_solution: S) -> EvaluatedSolution<S>;
}