use crate::entities::menu_button_commands::MenuButtonCommands;
use crate::entities::menu_button_default::MenuButtonDefault;
use crate::entities::menu_button_web_app::MenuButtonWebApp;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum MenuButton {
#[serde(rename = "commands")]
Commands(MenuButtonCommands),
#[serde(rename = "web_app")]
WebApp(MenuButtonWebApp),
#[serde(rename = "default")]
Default(MenuButtonDefault),
}
impl Default for MenuButton {
fn default() -> Self {
Self::Commands(MenuButtonCommands::default())
}
}
impl From<MenuButtonCommands> for MenuButton {
fn from(value: MenuButtonCommands) -> Self {
Self::Commands(value)
}
}
impl From<MenuButtonWebApp> for MenuButton {
fn from(value: MenuButtonWebApp) -> Self {
Self::WebApp(value)
}
}
impl From<MenuButtonDefault> for MenuButton {
fn from(value: MenuButtonDefault) -> Self {
Self::Default(value)
}
}