calco 0.1.0

Generic interface to work with genetic algorithms.
Documentation
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 // add multiple conditions
}

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(())
    }
}