tauri-plugin-context-menu 0.8.2

Handle native Context Menu in Tauri
Documentation
use serde::Deserialize;

#[derive(Clone, Deserialize)]
pub struct MenuItem {
    pub label: Option<String>,
    pub disabled: Option<bool>,
    pub shortcut: Option<String>,
    pub event: Option<String>,
    pub payload: Option<String>,
    pub subitems: Option<Vec<MenuItem>>,
    pub icon: Option<MenuItemIcon>,
    pub checked: Option<bool>,
    pub is_separator: Option<bool>,
}

#[derive(Clone, Deserialize)]
pub struct MenuItemIcon {
    pub path: String,
    pub width: Option<u32>,
    pub height: Option<u32>,
}

impl Default for MenuItem {
    fn default() -> Self {
        Self {
            label: None,
            disabled: Some(false),
            shortcut: None,
            event: None,
            payload: None,
            subitems: None,
            icon: None,
            checked: Some(false),
            is_separator: Some(false),
        }
    }
}