line_bot_sdk_messaging_api/models/
flex_component.rs1use crate::models;
13use serde::{Deserialize, Serialize};
14
15#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum FlexComponent {
20 FlexBox(Box<models::FlexBox>),
21 FlexButton(Box<models::FlexButton>),
22 FlexImage(Box<models::FlexImage>),
23 FlexVideo(Box<models::FlexVideo>),
24 FlexIcon(Box<models::FlexIcon>),
25 FlexText(Box<models::FlexText>),
26 FlexSpan(Box<models::FlexSpan>),
27 FlexSeparator(Box<models::FlexSeparator>),
28 FlexFiller(Box<models::FlexFiller>),
29}
30
31impl Default for FlexComponent {
32 fn default() -> Self {
33 Self::FlexBox(Box::new(Default::default()))
34 }
35}
36
37impl From<models::FlexBox> for FlexComponent {
39 fn from(value: models::FlexBox) -> Self {
40 FlexComponent::FlexBox(Box::new(value))
41 }
42}
43
44impl From<models::FlexButton> for FlexComponent {
45 fn from(value: models::FlexButton) -> Self {
46 FlexComponent::FlexButton(Box::new(value))
47 }
48}
49
50impl From<models::FlexImage> for FlexComponent {
51 fn from(value: models::FlexImage) -> Self {
52 FlexComponent::FlexImage(Box::new(value))
53 }
54}
55
56impl From<models::FlexVideo> for FlexComponent {
57 fn from(value: models::FlexVideo) -> Self {
58 FlexComponent::FlexVideo(Box::new(value))
59 }
60}
61
62impl From<models::FlexIcon> for FlexComponent {
63 fn from(value: models::FlexIcon) -> Self {
64 FlexComponent::FlexIcon(Box::new(value))
65 }
66}
67
68impl From<models::FlexText> for FlexComponent {
69 fn from(value: models::FlexText) -> Self {
70 FlexComponent::FlexText(Box::new(value))
71 }
72}
73
74impl From<models::FlexSpan> for FlexComponent {
75 fn from(value: models::FlexSpan) -> Self {
76 FlexComponent::FlexSpan(Box::new(value))
77 }
78}
79
80impl From<models::FlexSeparator> for FlexComponent {
81 fn from(value: models::FlexSeparator) -> Self {
82 FlexComponent::FlexSeparator(Box::new(value))
83 }
84}
85
86impl From<models::FlexFiller> for FlexComponent {
87 fn from(value: models::FlexFiller) -> Self {
88 FlexComponent::FlexFiller(Box::new(value))
89 }
90}