diff --git a/src/apps.rs b/src/apps.rs index 342bad6..5621045 100644 --- a/src/apps.rs +++ b/src/apps.rs @@ -33,7 +33,7 @@ impl AppBase { #[derive(Debug, Clone)] pub struct Menu { - pub submenus: Vec>, + pub submenus: Vec, current_submenu_id: usize, pub selected_submenu: Option>, pub name: String, @@ -46,7 +46,7 @@ impl Menu { panic!("Invalid submenu id"); } self.current_submenu_id = id; - self.selected_submenu = Some(self.submenus[self.current_submenu_id].clone()); + self.selected_submenu = Some(Box::new(self.submenus[self.current_submenu_id].clone())); } pub fn get_deepest_selected_submenu(&self) -> &Menu { @@ -71,74 +71,74 @@ struct Spotify { impl Spotify { fn new() -> Self { let spotify_menus = vec![ - Box::new(Menu { + Menu { submenus: vec![ - Box::new(Menu { + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Liked Songs".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Recently Played".to_string(), - }), + }, ], current_submenu_id: 0, selected_submenu: None, name: "Playlists".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![ - Box::new(Menu { + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Mike Oldfield".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "JM. Jarre".to_string(), - }), + }, ], current_submenu_id: 0, selected_submenu: None, name: "Artists".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Albums".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Songs".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Genres".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "New Releases".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Charts".to_string(), - }), + }, ]; Spotify { base: AppBase { @@ -171,24 +171,24 @@ struct Radio { impl Radio { fn new() -> Self { let radio_menus = vec![ - Box::new(Menu { + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Favorites".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Local".to_string(), - }), - Box::new(Menu { + }, + Menu { submenus: vec![], current_submenu_id: 0, selected_submenu: None, name: "Global".to_string(), - }), + }, ]; Radio { base: AppBase {