Skip to main content

adminx_core/
menu.rs

1// adminx-core/src/menu.rs
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct MenuItem {
6    pub title: String,
7    pub path: String,
8    pub children: Option<Vec<MenuItem>>,
9    pub icon: Option<String>,
10    pub order: Option<usize>,
11}
12
13#[derive(Debug, Clone, PartialEq, Eq)]
14pub enum MenuAction {
15    List,
16    View,
17    Create,
18    Edit,
19    Delete,
20}
21
22impl MenuAction {
23    pub fn as_str(&self) -> &'static str {
24        match self {
25            MenuAction::List => "list",
26            MenuAction::View => "view",
27            MenuAction::Create => "create",
28            MenuAction::Edit => "edit",
29            MenuAction::Delete => "delete",
30        }
31    }
32}