messaging_api_line/models/
flex_box.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 FlexBox {
16    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
17    pub r#type: Option<String>,
18    #[serde(rename = "layout")]
19    pub layout: Layout,
20    #[serde(rename = "flex", skip_serializing_if = "Option::is_none")]
21    pub flex: Option<i32>,
22    #[serde(rename = "contents")]
23    pub contents: Vec<models::FlexComponent>,
24    #[serde(rename = "spacing", skip_serializing_if = "Option::is_none")]
25    pub spacing: Option<String>,
26    #[serde(rename = "margin", skip_serializing_if = "Option::is_none")]
27    pub margin: Option<String>,
28    #[serde(rename = "position", skip_serializing_if = "Option::is_none")]
29    pub position: Option<Position>,
30    #[serde(rename = "offsetTop", skip_serializing_if = "Option::is_none")]
31    pub offset_top: Option<String>,
32    #[serde(rename = "offsetBottom", skip_serializing_if = "Option::is_none")]
33    pub offset_bottom: Option<String>,
34    #[serde(rename = "offsetStart", skip_serializing_if = "Option::is_none")]
35    pub offset_start: Option<String>,
36    #[serde(rename = "offsetEnd", skip_serializing_if = "Option::is_none")]
37    pub offset_end: Option<String>,
38    #[serde(rename = "backgroundColor", skip_serializing_if = "Option::is_none")]
39    pub background_color: Option<String>,
40    #[serde(rename = "borderColor", skip_serializing_if = "Option::is_none")]
41    pub border_color: Option<String>,
42    #[serde(rename = "borderWidth", skip_serializing_if = "Option::is_none")]
43    pub border_width: Option<String>,
44    #[serde(rename = "cornerRadius", skip_serializing_if = "Option::is_none")]
45    pub corner_radius: Option<String>,
46    #[serde(rename = "width", skip_serializing_if = "Option::is_none")]
47    pub width: Option<String>,
48    #[serde(rename = "maxWidth", skip_serializing_if = "Option::is_none")]
49    pub max_width: Option<String>,
50    #[serde(rename = "height", skip_serializing_if = "Option::is_none")]
51    pub height: Option<String>,
52    #[serde(rename = "maxHeight", skip_serializing_if = "Option::is_none")]
53    pub max_height: Option<String>,
54    #[serde(rename = "paddingAll", skip_serializing_if = "Option::is_none")]
55    pub padding_all: Option<String>,
56    #[serde(rename = "paddingTop", skip_serializing_if = "Option::is_none")]
57    pub padding_top: Option<String>,
58    #[serde(rename = "paddingBottom", skip_serializing_if = "Option::is_none")]
59    pub padding_bottom: Option<String>,
60    #[serde(rename = "paddingStart", skip_serializing_if = "Option::is_none")]
61    pub padding_start: Option<String>,
62    #[serde(rename = "paddingEnd", skip_serializing_if = "Option::is_none")]
63    pub padding_end: Option<String>,
64    #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
65    pub action: Option<Box<models::Action>>,
66    #[serde(rename = "justifyContent", skip_serializing_if = "Option::is_none")]
67    pub justify_content: Option<JustifyContent>,
68    #[serde(rename = "alignItems", skip_serializing_if = "Option::is_none")]
69    pub align_items: Option<AlignItems>,
70    #[serde(rename = "background", skip_serializing_if = "Option::is_none")]
71    pub background: Option<Box<models::FlexBoxBackground>>,
72}
73
74impl FlexBox {
75    pub fn new(r#type: String, layout: Layout, contents: Vec<models::FlexComponent>) -> FlexBox {
76        FlexBox {
77            r#type: Some(r#type),
78            layout,
79            flex: None,
80            contents,
81            spacing: None,
82            margin: None,
83            position: None,
84            offset_top: None,
85            offset_bottom: None,
86            offset_start: None,
87            offset_end: None,
88            background_color: None,
89            border_color: None,
90            border_width: None,
91            corner_radius: None,
92            width: None,
93            max_width: None,
94            height: None,
95            max_height: None,
96            padding_all: None,
97            padding_top: None,
98            padding_bottom: None,
99            padding_start: None,
100            padding_end: None,
101            action: None,
102            justify_content: None,
103            align_items: None,
104            background: None,
105        }
106    }
107}
108///
109#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
110pub enum Layout {
111    #[serde(rename = "horizontal")]
112    Horizontal,
113    #[serde(rename = "vertical")]
114    Vertical,
115    #[serde(rename = "baseline")]
116    Baseline,
117}
118
119impl Default for Layout {
120    fn default() -> Layout {
121        Self::Horizontal
122    }
123}
124///
125#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
126pub enum Position {
127    #[serde(rename = "relative")]
128    Relative,
129    #[serde(rename = "absolute")]
130    Absolute,
131}
132
133impl Default for Position {
134    fn default() -> Position {
135        Self::Relative
136    }
137}
138///
139#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
140pub enum JustifyContent {
141    #[serde(rename = "center")]
142    Center,
143    #[serde(rename = "flex-start")]
144    FlexStart,
145    #[serde(rename = "flex-end")]
146    FlexEnd,
147    #[serde(rename = "space-between")]
148    SpaceBetween,
149    #[serde(rename = "space-around")]
150    SpaceAround,
151    #[serde(rename = "space-evenly")]
152    SpaceEvenly,
153}
154
155impl Default for JustifyContent {
156    fn default() -> JustifyContent {
157        Self::Center
158    }
159}
160///
161#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
162pub enum AlignItems {
163    #[serde(rename = "center")]
164    Center,
165    #[serde(rename = "flex-start")]
166    FlexStart,
167    #[serde(rename = "flex-end")]
168    FlexEnd,
169}
170
171impl Default for AlignItems {
172    fn default() -> AlignItems {
173        Self::Center
174    }
175}