1use 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}