use crate::*; #[derive(Default, Debug, Clone)] pub struct ArrangerScene { /// Name of scene pub name: Arc>, /// Clips in scene, one per track pub clips: Vec>>>, /// Identifying color of scene pub color: ItemColor, } impl ArrangerScene { //TODO //pub fn from_edn <'a, 'e> (args: &[Edn<'e>]) -> Usually { //let mut name = None; //let mut clips = vec![]; //edn!(edn in args { //Edn::Map(map) => { //let key = map.get(&Edn::Key(":name")); //if let Some(Edn::Str(n)) = key { //name = Some(*n); //} else { //panic!("unexpected key in scene '{name:?}': {key:?}") //} //}, //Edn::Symbol("_") => { //clips.push(None); //}, //Edn::Int(i) => { //clips.push(Some(*i as usize)); //}, //_ => panic!("unexpected in scene '{name:?}': {edn:?}") //}); //Ok(ArrangerScene { //name: Arc::new(name.unwrap_or("").to_string().into()), //color: ItemColor::random(), //clips, //}) //} }