use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct InfoPushDataClickable {
#[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<String>>,
#[serde(rename = "command")]
pub command: Command,
}
impl InfoPushDataClickable {
pub fn new(command: Command) -> InfoPushDataClickable {
InfoPushDataClickable {
parameters: None,
command,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Command {
#[serde(rename = "CannedWorldSearch")]
CannedWorldSearch,
#[serde(rename = "OpenSafetyMenu")]
OpenSafetyMenu,
#[serde(rename = "OpenURL")]
OpenUrl,
#[serde(rename = "OpenVRCPlusMenu")]
OpenVrcPlusMenu,
}
impl Default for Command {
fn default() -> Command {
Self::CannedWorldSearch
}
}