messaging_api_line/models/
flex_text.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 FlexText {
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 = "text", skip_serializing_if = "Option::is_none")]
21    pub text: Option<String>,
22    #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
23    pub size: Option<String>,
24    #[serde(rename = "align", skip_serializing_if = "Option::is_none")]
25    pub align: Option<Align>,
26    #[serde(rename = "gravity", skip_serializing_if = "Option::is_none")]
27    pub gravity: Option<Gravity>,
28    #[serde(rename = "color", skip_serializing_if = "Option::is_none")]
29    pub color: Option<String>,
30    #[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
31    pub weight: Option<Weight>,
32    #[serde(rename = "style", skip_serializing_if = "Option::is_none")]
33    pub style: Option<Style>,
34    #[serde(rename = "decoration", skip_serializing_if = "Option::is_none")]
35    pub decoration: Option<Decoration>,
36    #[serde(rename = "wrap", skip_serializing_if = "Option::is_none")]
37    pub wrap: Option<bool>,
38    #[serde(rename = "lineSpacing", skip_serializing_if = "Option::is_none")]
39    pub line_spacing: Option<String>,
40    #[serde(rename = "margin", skip_serializing_if = "Option::is_none")]
41    pub margin: Option<String>,
42    #[serde(rename = "position", skip_serializing_if = "Option::is_none")]
43    pub position: Option<Position>,
44    #[serde(rename = "offsetTop", skip_serializing_if = "Option::is_none")]
45    pub offset_top: Option<String>,
46    #[serde(rename = "offsetBottom", skip_serializing_if = "Option::is_none")]
47    pub offset_bottom: Option<String>,
48    #[serde(rename = "offsetStart", skip_serializing_if = "Option::is_none")]
49    pub offset_start: Option<String>,
50    #[serde(rename = "offsetEnd", skip_serializing_if = "Option::is_none")]
51    pub offset_end: Option<String>,
52    #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
53    pub action: Option<Box<models::Action>>,
54    #[serde(rename = "maxLines", skip_serializing_if = "Option::is_none")]
55    pub max_lines: Option<i32>,
56    #[serde(rename = "contents", skip_serializing_if = "Option::is_none")]
57    pub contents: Option<Vec<models::FlexSpan>>,
58    #[serde(rename = "adjustMode", skip_serializing_if = "Option::is_none")]
59    pub adjust_mode: Option<AdjustMode>,
60    #[serde(rename = "scaling", skip_serializing_if = "Option::is_none")]
61    pub scaling: Option<bool>,
62}
63
64impl FlexText {
65    pub fn new(r#type: String) -> FlexText {
66        FlexText {
67            r#type: Some(r#type),
68            flex: None,
69            text: None,
70            size: None,
71            align: None,
72            gravity: None,
73            color: None,
74            weight: None,
75            style: None,
76            decoration: None,
77            wrap: None,
78            line_spacing: None,
79            margin: None,
80            position: None,
81            offset_top: None,
82            offset_bottom: None,
83            offset_start: None,
84            offset_end: None,
85            action: None,
86            max_lines: None,
87            contents: None,
88            adjust_mode: None,
89            scaling: None,
90        }
91    }
92}
93///
94#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
95pub enum Align {
96    #[serde(rename = "start")]
97    Start,
98    #[serde(rename = "end")]
99    End,
100    #[serde(rename = "center")]
101    Center,
102}
103
104impl Default for Align {
105    fn default() -> Align {
106        Self::Start
107    }
108}
109///
110#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
111pub enum Gravity {
112    #[serde(rename = "top")]
113    Top,
114    #[serde(rename = "bottom")]
115    Bottom,
116    #[serde(rename = "center")]
117    Center,
118}
119
120impl Default for Gravity {
121    fn default() -> Gravity {
122        Self::Top
123    }
124}
125///
126#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
127pub enum Weight {
128    #[serde(rename = "regular")]
129    Regular,
130    #[serde(rename = "bold")]
131    Bold,
132}
133
134impl Default for Weight {
135    fn default() -> Weight {
136        Self::Regular
137    }
138}
139///
140#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
141pub enum Style {
142    #[serde(rename = "normal")]
143    Normal,
144    #[serde(rename = "italic")]
145    Italic,
146}
147
148impl Default for Style {
149    fn default() -> Style {
150        Self::Normal
151    }
152}
153///
154#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
155pub enum Decoration {
156    #[serde(rename = "none")]
157    None,
158    #[serde(rename = "underline")]
159    Underline,
160    #[serde(rename = "line-through")]
161    LineThrough,
162}
163
164impl Default for Decoration {
165    fn default() -> Decoration {
166        Self::None
167    }
168}
169///
170#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
171pub enum Position {
172    #[serde(rename = "relative")]
173    Relative,
174    #[serde(rename = "absolute")]
175    Absolute,
176}
177
178impl Default for Position {
179    fn default() -> Position {
180        Self::Relative
181    }
182}
183///
184#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
185pub enum AdjustMode {
186    #[serde(rename = "shrink-to-fit")]
187    ShrinkToFit,
188}
189
190impl Default for AdjustMode {
191    fn default() -> AdjustMode {
192        Self::ShrinkToFit
193    }
194}