use crate::*; /// Contains all phrases in a project pub struct PhrasePool { /// Phrases in the pool pub phrases: Vec>>, } #[derive(Clone, PartialEq)] pub enum PhrasePoolCommand { Add(usize), Delete(usize), Duplicate(usize), Swap(usize, usize), RandomColor(usize), Import(usize, String), Export(usize, String), SetName(usize, String), SetLength(usize, usize), } impl Command for PhrasePoolCommand { fn execute (self, state: &mut PhrasePool) -> Perhaps { match self { Self::Add(index) => { //Self::Append => { view.append_new(None, None) }, //Self::Insert => { view.insert_new(None, None) }, }, Self::Delete(index) => { //if view.phrase > 0 { //view.state.phrases.remove(view.phrase); //view.phrase = view.phrase.min(view.state.phrases.len().saturating_sub(1)); //} }, Self::Duplicate(index) => { //let mut phrase = view.phrase().read().unwrap().duplicate(); //phrase.color = ItemColorTriplet::random_near(phrase.color, 0.25); //view.phrases.insert(view.phrase + 1, Arc::new(RwLock::new(phrase))); //view.phrase += 1; }, Self::Swap(index, other) => { //Self::MoveUp => { view.move_up() }, //Self::MoveDown => { view.move_down() }, }, Self::RandomColor(index) => { //view.phrase().write().unwrap().color = ItemColorTriplet::random(); }, Self::Import(index, path) => { }, Self::Export(index, path) => { }, Self::SetName(index, name) => { }, Self::SetLength(index, length) => { }, } Ok(None) } }