Skip to main content

line_bot_sdk_messaging_api/models/
flex_component.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 * Post-processed by: post-process-enums-v2.js
10 */
11
12use crate::models;
13use serde::{Deserialize, Serialize};
14
15/// FlexComponent enum using newtype pattern (wraps structs in Box)
16/// This is automatically generated from discriminated schemas
17#[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
37// Conversion methods from struct types to enum variants
38impl 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}