messaging_api_line/models/
flex_bubble.rs1use 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#[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#[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}