messaging_api_line/models/
postback_action.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PostbackAction {
16 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
18 pub r#type: Option<String>,
19 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
21 pub label: Option<String>,
22 #[serde(rename = "data", skip_serializing_if = "Option::is_none")]
23 pub data: Option<String>,
24 #[serde(rename = "displayText", skip_serializing_if = "Option::is_none")]
25 pub display_text: Option<String>,
26 #[serde(rename = "text", skip_serializing_if = "Option::is_none")]
27 pub text: Option<String>,
28 #[serde(rename = "inputOption", skip_serializing_if = "Option::is_none")]
29 pub input_option: Option<InputOption>,
30 #[serde(rename = "fillInText", skip_serializing_if = "Option::is_none")]
31 pub fill_in_text: Option<String>,
32}
33
34impl PostbackAction {
35 pub fn new() -> PostbackAction {
36 PostbackAction {
37 r#type: None,
38 label: None,
39 data: None,
40 display_text: None,
41 text: None,
42 input_option: None,
43 fill_in_text: None,
44 }
45 }
46}
47#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
49pub enum InputOption {
50 #[serde(rename = "closeRichMenu")]
51 CloseRichMenu,
52 #[serde(rename = "openRichMenu")]
53 OpenRichMenu,
54 #[serde(rename = "openKeyboard")]
55 OpenKeyboard,
56 #[serde(rename = "openVoice")]
57 OpenVoice,
58}
59
60impl Default for InputOption {
61 fn default() -> InputOption {
62 Self::CloseRichMenu
63 }
64}
65