use crate::core::{individual::Individual, population::Population};
#[derive(Debug)]
pub enum Offspring<G, F> {
Single(Individual<G, F>),
Multiple(Population<G, F>),
}
impl<G, F> Offspring<G, F> {
pub fn into_population(self) -> Population<G, F> {
match self {
Offspring::Single(individual) => {
let mut p = Population::new();
p.add(individual);
p
}
Offspring::Multiple(population) => population,
}
}
pub fn num_offspring(&self) -> usize {
match self {
Offspring::Single(_) => 1,
Offspring::Multiple(population) => population.len(),
}
}
}