diff --git a/crates/ezidam/src/menu.rs b/crates/ezidam/src/menu.rs index 51a6c77..14ba2c1 100644 --- a/crates/ezidam/src/menu.rs +++ b/crates/ezidam/src/menu.rs @@ -1,24 +1,39 @@ +mod icons; mod items; mod template; -pub use items::Item; +pub use items::{Admin, User}; pub use template::Template; -pub struct Menu { - pub selected: Item, - pub list: Vec, +pub enum Menu { + User(User), + Admin(Admin), } -impl From for Menu { - fn from(value: Item) -> Self { - Self { - selected: value, - list: list(), +impl Menu { + pub fn selected(&self) -> &'static str { + match self { + Menu::User(user) => user.id(), + Menu::Admin(admin) => admin.id(), + } + } + + pub fn list(&self) -> Vec