messaging_api_line/models/
flex_bubble.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 FlexBubble {
16    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
17    pub r#type: Option<String>,
18    #[serde(rename = "direction", skip_serializing_if = "Option::is_none")]
19    pub direction: Option<Direction>,
20    #[serde(rename = "styles", skip_serializing_if = "Option::is_none")]
21    pub styles: Option<Box<models::FlexBubbleStyles>>,
22    #[serde(rename = "header", skip_serializing_if = "Option::is_none")]
23    pub header: Option<Box<models::FlexBox>>,
24    #[serde(rename = "hero", skip_serializing_if = "Option::is_none")]
25    pub hero: Option<Box<models::FlexComponent>>,
26    #[serde(rename = "body", skip_serializing_if = "Option::is_none")]
27    pub body: Option<Box<models::FlexBox>>,
28    #[serde(rename = "footer", skip_serializing_if = "Option::is_none")]
29    pub footer: Option<Box<models::FlexBox>>,
30    #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
31    pub size: Option<Size>,
32    #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
33    pub action: Option<Box<models::Action>>,
34}
35
36impl FlexBubble {
37    pub fn new(r#type: String) -> FlexBubble {
38        FlexBubble {
39            r#type: Some(r#type),
40            direction: None,
41            styles: None,
42            header: None,
43            hero: None,
44            body: None,
45            footer: None,
46            size: None,
47            action: None,
48        }
49    }
50}
51///
52#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
53pub enum Direction {
54    #[serde(rename = "ltr")]
55    Ltr,
56    #[serde(rename = "rtl")]
57    Rtl,
58}
59
60impl Default for Direction {
61    fn default() -> Direction {
62        Self::Ltr
63    }
64}
65///
66#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
67pub enum Size {
68    #[serde(rename = "nano")]
69    Nano,
70    #[serde(rename = "micro")]
71    Micro,
72    #[serde(rename = "deca")]
73    Deca,
74    #[serde(rename = "hecto")]
75    Hecto,
76    #[serde(rename = "kilo")]
77    Kilo,
78    #[serde(rename = "mega")]
79    Mega,
80    #[serde(rename = "giga")]
81    Giga,
82}
83
84impl Default for Size {
85    fn default() -> Size {
86        Self::Nano
87    }
88}