messaging_api_line/models/
flex_component.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14use super::{
15 FlexBox, FlexButton, FlexFiller, FlexIcon, FlexImage, FlexSeparator, FlexSpan, FlexText,
16 FlexVideo,
17};
18
19#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
20#[serde(tag = "type")]
21pub enum FlexComponent {
22 #[serde(rename = "box")]
23 FlexBox(FlexBox),
24 #[serde(rename = "button")]
25 FlexButton(FlexButton),
26 #[serde(rename = "filler")]
27 FlexFiller(FlexFiller),
28 #[serde(rename = "icon")]
29 FlexIcon(FlexIcon),
30 #[serde(rename = "image")]
31 FlexImage(FlexImage),
32 #[serde(rename = "separator")]
33 FlexSeparator(FlexSeparator),
34 #[serde(rename = "span")]
35 FlexSpan(FlexSpan),
36 #[serde(rename = "text")]
37 FlexText(FlexText),
38 #[serde(rename = "video")]
39 FlexVideo(FlexVideo),
40}
41
42impl Default for FlexComponent {
43 fn default() -> Self {
44 Self::FlexBox(FlexBox::default())
45 }
46}