use crate::Transformers; use crate::point::Point; use serde::{Serialize,Deserialize}; /// Replicate #[allow(dead_code)] #[derive(Serialize,Deserialize,Debug,Clone,Copy)] pub enum Replicate { Until(usize), Times(usize) } impl Transformers for Replicate { fn apply(&self, point_list: &[Point]) -> Vec { let mut point_list2 = vec![]; match self { Replicate::Until(n) => { while point_list2.len() < *n { point_list2.append(&mut point_list.to_vec()); } }, Replicate::Times(n) => { for _ in 0..*n { point_list2.append(&mut point_list.to_vec()); } } } point_list2 } }