line_bot_sdk_messaging_api/models/
message.rs1use crate::models;
13use serde::{Deserialize, Serialize};
14
15#[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
39impl 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}