messaging_api_line/models/
action.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14use super::{
15 CameraAction, CameraRollAction, ClipboardAction, DatetimePickerAction, LocationAction,
16 MessageAction, PostbackAction, RichMenuSwitchAction, UriAction,
17};
18
19#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
21#[serde(tag = "type")]
22pub enum Action {
23 #[serde(rename = "camera")]
24 CameraAction(CameraAction),
25 #[serde(rename = "cameraRoll")]
26 CameraRollAction(CameraRollAction),
27 #[serde(rename = "clipboard")]
28 ClipboardAction(ClipboardAction),
29 #[serde(rename = "datetimepicker")]
30 DatetimePickerAction(DatetimePickerAction),
31 #[serde(rename = "location")]
32 LocationAction(LocationAction),
33 #[serde(rename = "message")]
34 MessageAction(MessageAction),
35 #[serde(rename = "postback")]
36 PostbackAction(PostbackAction),
37 #[serde(rename = "richmenuswitch")]
38 RichMenuSwitchAction(RichMenuSwitchAction),
39 #[serde(rename = "uri")]
40 UriAction(UriAction),
41}
42
43impl Default for Action {
44 fn default() -> Self {
45 Self::CameraAction(CameraAction::default())
46 }
47}