line-bot-sdk-messaging-api 0.1.0

This document describes LINE Messaging API.
Documentation
/*
 * LINE Messaging API
 *
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 * Generated by: https://openapi-generator.tech
 * Post-processed by: post-process-enums-v2.js
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// FlexComponent enum using newtype pattern (wraps structs in Box)
/// This is automatically generated from discriminated schemas
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FlexComponent {
    FlexBox(Box<models::FlexBox>),
    FlexButton(Box<models::FlexButton>),
    FlexImage(Box<models::FlexImage>),
    FlexVideo(Box<models::FlexVideo>),
    FlexIcon(Box<models::FlexIcon>),
    FlexText(Box<models::FlexText>),
    FlexSpan(Box<models::FlexSpan>),
    FlexSeparator(Box<models::FlexSeparator>),
    FlexFiller(Box<models::FlexFiller>),
}

impl Default for FlexComponent {
    fn default() -> Self {
        Self::FlexBox(Box::new(Default::default()))
    }
}

// Conversion methods from struct types to enum variants
impl From<models::FlexBox> for FlexComponent {
    fn from(value: models::FlexBox) -> Self {
        FlexComponent::FlexBox(Box::new(value))
    }
}

impl From<models::FlexButton> for FlexComponent {
    fn from(value: models::FlexButton) -> Self {
        FlexComponent::FlexButton(Box::new(value))
    }
}

impl From<models::FlexImage> for FlexComponent {
    fn from(value: models::FlexImage) -> Self {
        FlexComponent::FlexImage(Box::new(value))
    }
}

impl From<models::FlexVideo> for FlexComponent {
    fn from(value: models::FlexVideo) -> Self {
        FlexComponent::FlexVideo(Box::new(value))
    }
}

impl From<models::FlexIcon> for FlexComponent {
    fn from(value: models::FlexIcon) -> Self {
        FlexComponent::FlexIcon(Box::new(value))
    }
}

impl From<models::FlexText> for FlexComponent {
    fn from(value: models::FlexText) -> Self {
        FlexComponent::FlexText(Box::new(value))
    }
}

impl From<models::FlexSpan> for FlexComponent {
    fn from(value: models::FlexSpan) -> Self {
        FlexComponent::FlexSpan(Box::new(value))
    }
}

impl From<models::FlexSeparator> for FlexComponent {
    fn from(value: models::FlexSeparator) -> Self {
        FlexComponent::FlexSeparator(Box::new(value))
    }
}

impl From<models::FlexFiller> for FlexComponent {
    fn from(value: models::FlexFiller) -> Self {
        FlexComponent::FlexFiller(Box::new(value))
    }
}