use crate::models;
use serde::{Deserialize, Serialize};
use super::{
CameraAction, CameraRollAction, ClipboardAction, DatetimePickerAction, LocationAction,
MessageAction, PostbackAction, RichMenuSwitchAction, UriAction,
};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Action {
#[serde(rename = "camera")]
CameraAction(CameraAction),
#[serde(rename = "cameraRoll")]
CameraRollAction(CameraRollAction),
#[serde(rename = "clipboard")]
ClipboardAction(ClipboardAction),
#[serde(rename = "datetimepicker")]
DatetimePickerAction(DatetimePickerAction),
#[serde(rename = "location")]
LocationAction(LocationAction),
#[serde(rename = "message")]
MessageAction(MessageAction),
#[serde(rename = "postback")]
PostbackAction(PostbackAction),
#[serde(rename = "richmenuswitch")]
RichMenuSwitchAction(RichMenuSwitchAction),
#[serde(rename = "uri")]
UriAction(UriAction),
}
impl Default for Action {
fn default() -> Self {
Self::CameraAction(CameraAction::default())
}
}