Skip to main content

line_bot_sdk_messaging_api/models/
action.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/// Action 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 Action {
20    CameraAction(Box<models::CameraAction>),
21    CameraRollAction(Box<models::CameraRollAction>),
22    ClipboardAction(Box<models::ClipboardAction>),
23    DatetimePickerAction(Box<models::DatetimePickerAction>),
24    LocationAction(Box<models::LocationAction>),
25    MessageAction(Box<models::MessageAction>),
26    PostbackAction(Box<models::PostbackAction>),
27    RichMenuSwitchAction(Box<models::RichMenuSwitchAction>),
28    UriAction(Box<models::UriAction>),
29}
30
31impl Default for Action {
32    fn default() -> Self {
33        Self::CameraAction(Box::new(Default::default()))
34    }
35}
36
37// Conversion methods from struct types to enum variants
38impl From<models::CameraAction> for Action {
39    fn from(value: models::CameraAction) -> Self {
40        Action::CameraAction(Box::new(value))
41    }
42}
43
44impl From<models::CameraRollAction> for Action {
45    fn from(value: models::CameraRollAction) -> Self {
46        Action::CameraRollAction(Box::new(value))
47    }
48}
49
50impl From<models::ClipboardAction> for Action {
51    fn from(value: models::ClipboardAction) -> Self {
52        Action::ClipboardAction(Box::new(value))
53    }
54}
55
56impl From<models::DatetimePickerAction> for Action {
57    fn from(value: models::DatetimePickerAction) -> Self {
58        Action::DatetimePickerAction(Box::new(value))
59    }
60}
61
62impl From<models::LocationAction> for Action {
63    fn from(value: models::LocationAction) -> Self {
64        Action::LocationAction(Box::new(value))
65    }
66}
67
68impl From<models::MessageAction> for Action {
69    fn from(value: models::MessageAction) -> Self {
70        Action::MessageAction(Box::new(value))
71    }
72}
73
74impl From<models::PostbackAction> for Action {
75    fn from(value: models::PostbackAction) -> Self {
76        Action::PostbackAction(Box::new(value))
77    }
78}
79
80impl From<models::RichMenuSwitchAction> for Action {
81    fn from(value: models::RichMenuSwitchAction) -> Self {
82        Action::RichMenuSwitchAction(Box::new(value))
83    }
84}
85
86impl From<models::UriAction> for Action {
87    fn from(value: models::UriAction) -> Self {
88        Action::UriAction(Box::new(value))
89    }
90}