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};

/// Action 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 Action {
    CameraAction(Box<models::CameraAction>),
    CameraRollAction(Box<models::CameraRollAction>),
    ClipboardAction(Box<models::ClipboardAction>),
    DatetimePickerAction(Box<models::DatetimePickerAction>),
    LocationAction(Box<models::LocationAction>),
    MessageAction(Box<models::MessageAction>),
    PostbackAction(Box<models::PostbackAction>),
    RichMenuSwitchAction(Box<models::RichMenuSwitchAction>),
    UriAction(Box<models::UriAction>),
}

impl Default for Action {
    fn default() -> Self {
        Self::CameraAction(Box::new(Default::default()))
    }
}

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

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

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

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

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

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

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

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

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