use std::time::Duration;
pub enum StopCondition {
GenerationReached(u32),
BestFitnessReached(f32),
TimeSpent(Duration)
}
pub struct Config {
pub mutate_ratio: f32,
pub pop_max: usize,
pub stop_condition: StopCondition }
impl Config {
pub fn check(&self) -> Result<(), &'static str> {
if self.mutate_ratio <= 0.0 {
return Err("Mutate ratio is lower than 0.0!");
}
else if self.mutate_ratio >= 1.0 {
return Err("Mutate ratio is greater than 1.0!");
}
Ok(())
}
}