Skip to main content

line_bot_sdk_messaging_api/models/
message.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/// Message 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 Message {
20    TextMessage(Box<models::TextMessage>),
21    TextMessageV2(Box<models::TextMessageV2>),
22    StickerMessage(Box<models::StickerMessage>),
23    ImageMessage(Box<models::ImageMessage>),
24    VideoMessage(Box<models::VideoMessage>),
25    AudioMessage(Box<models::AudioMessage>),
26    LocationMessage(Box<models::LocationMessage>),
27    ImagemapMessage(Box<models::ImagemapMessage>),
28    TemplateMessage(Box<models::TemplateMessage>),
29    FlexMessage(Box<models::FlexMessage>),
30    CouponMessage(Box<models::CouponMessage>),
31}
32
33impl Default for Message {
34    fn default() -> Self {
35        Self::TextMessage(Box::new(Default::default()))
36    }
37}
38
39// Conversion methods from struct types to enum variants
40impl From<models::TextMessage> for Message {
41    fn from(value: models::TextMessage) -> Self {
42        Message::TextMessage(Box::new(value))
43    }
44}
45
46impl From<models::TextMessageV2> for Message {
47    fn from(value: models::TextMessageV2) -> Self {
48        Message::TextMessageV2(Box::new(value))
49    }
50}
51
52impl From<models::StickerMessage> for Message {
53    fn from(value: models::StickerMessage) -> Self {
54        Message::StickerMessage(Box::new(value))
55    }
56}
57
58impl From<models::ImageMessage> for Message {
59    fn from(value: models::ImageMessage) -> Self {
60        Message::ImageMessage(Box::new(value))
61    }
62}
63
64impl From<models::VideoMessage> for Message {
65    fn from(value: models::VideoMessage) -> Self {
66        Message::VideoMessage(Box::new(value))
67    }
68}
69
70impl From<models::AudioMessage> for Message {
71    fn from(value: models::AudioMessage) -> Self {
72        Message::AudioMessage(Box::new(value))
73    }
74}
75
76impl From<models::LocationMessage> for Message {
77    fn from(value: models::LocationMessage) -> Self {
78        Message::LocationMessage(Box::new(value))
79    }
80}
81
82impl From<models::ImagemapMessage> for Message {
83    fn from(value: models::ImagemapMessage) -> Self {
84        Message::ImagemapMessage(Box::new(value))
85    }
86}
87
88impl From<models::TemplateMessage> for Message {
89    fn from(value: models::TemplateMessage) -> Self {
90        Message::TemplateMessage(Box::new(value))
91    }
92}
93
94impl From<models::FlexMessage> for Message {
95    fn from(value: models::FlexMessage) -> Self {
96        Message::FlexMessage(Box::new(value))
97    }
98}
99
100impl From<models::CouponMessage> for Message {
101    fn from(value: models::CouponMessage) -> Self {
102        Message::CouponMessage(Box::new(value))
103    }
104}