Documentation
use purrmitive::{
    core::{PurrHillClimbModel, PurrModelRunner, PurrMultiThreadRunner},
    graphics::Triangle,
};

#[derive(Debug, Copy, Clone)]
pub enum PicassoMode {
    Line,
    Triangle,
}

impl PicassoMode {
    pub fn build_runner(&self, shapes: usize, thread: usize) -> Box<dyn PurrModelRunner<M = PurrHillClimbModel>> {
        let runner = match self {
            PicassoMode::Line => unimplemented!(),
            PicassoMode::Triangle => PurrMultiThreadRunner::<Triangle>::new(shapes as u32, thread as u32),
        };
        return Box::new(runner);
    }
}