messaging_api_line/models/
flex_button.rs

1/*
2 * LINE Messaging API
3 *
4 * This document describes LINE Messaging API.
5 *
6 * The version of the OpenAPI document: 0.0.1
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FlexButton {
16    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
17    pub r#type: Option<String>,
18    #[serde(rename = "flex", skip_serializing_if = "Option::is_none")]
19    pub flex: Option<i32>,
20    #[serde(rename = "color", skip_serializing_if = "Option::is_none")]
21    pub color: Option<String>,
22    #[serde(rename = "style", skip_serializing_if = "Option::is_none")]
23    pub style: Option<Style>,
24    #[serde(rename = "action")]
25    pub action: Box<models::Action>,
26    #[serde(rename = "gravity", skip_serializing_if = "Option::is_none")]
27    pub gravity: Option<Gravity>,
28    #[serde(rename = "margin", skip_serializing_if = "Option::is_none")]
29    pub margin: Option<String>,
30    #[serde(rename = "position", skip_serializing_if = "Option::is_none")]
31    pub position: Option<Position>,
32    #[serde(rename = "offsetTop", skip_serializing_if = "Option::is_none")]
33    pub offset_top: Option<String>,
34    #[serde(rename = "offsetBottom", skip_serializing_if = "Option::is_none")]
35    pub offset_bottom: Option<String>,
36    #[serde(rename = "offsetStart", skip_serializing_if = "Option::is_none")]
37    pub offset_start: Option<String>,
38    #[serde(rename = "offsetEnd", skip_serializing_if = "Option::is_none")]
39    pub offset_end: Option<String>,
40    #[serde(rename = "height", skip_serializing_if = "Option::is_none")]
41    pub height: Option<Height>,
42    #[serde(rename = "adjustMode", skip_serializing_if = "Option::is_none")]
43    pub adjust_mode: Option<AdjustMode>,
44    #[serde(rename = "scaling", skip_serializing_if = "Option::is_none")]
45    pub scaling: Option<bool>,
46}
47
48impl FlexButton {
49    pub fn new(r#type: String, action: models::Action) -> FlexButton {
50        FlexButton {
51            r#type: Some(r#type),
52            flex: None,
53            color: None,
54            style: None,
55            action: Box::new(action),
56            gravity: None,
57            margin: None,
58            position: None,
59            offset_top: None,
60            offset_bottom: None,
61            offset_start: None,
62            offset_end: None,
63            height: None,
64            adjust_mode: None,
65            scaling: None,
66        }
67    }
68}
69///
70#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
71pub enum Style {
72    #[serde(rename = "primary")]
73    Primary,
74    #[serde(rename = "secondary")]
75    Secondary,
76    #[serde(rename = "link")]
77    Link,
78}
79
80impl Default for Style {
81    fn default() -> Style {
82        Self::Primary
83    }
84}
85///
86#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
87pub enum Gravity {
88    #[serde(rename = "top")]
89    Top,
90    #[serde(rename = "bottom")]
91    Bottom,
92    #[serde(rename = "center")]
93    Center,
94}
95
96impl Default for Gravity {
97    fn default() -> Gravity {
98        Self::Top
99    }
100}
101///
102#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
103pub enum Position {
104    #[serde(rename = "relative")]
105    Relative,
106    #[serde(rename = "absolute")]
107    Absolute,
108}
109
110impl Default for Position {
111    fn default() -> Position {
112        Self::Relative
113    }
114}
115///
116#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
117pub enum Height {
118    #[serde(rename = "md")]
119    Md,
120    #[serde(rename = "sm")]
121    Sm,
122}
123
124impl Default for Height {
125    fn default() -> Height {
126        Self::Md
127    }
128}
129///
130#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
131pub enum AdjustMode {
132    #[serde(rename = "shrink-to-fit")]
133    ShrinkToFit,
134}
135
136impl Default for AdjustMode {
137    fn default() -> AdjustMode {
138        Self::ShrinkToFit
139    }
140}