messaging_api_line/models/
message.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14use super::{
15 AudioMessage, FlexMessage, ImageMessage, ImagemapMessage, LocationMessage, StickerMessage,
16 TemplateMessage, TextMessage, TextMessageV2, VideoMessage,
17};
18
19#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
20#[serde(tag = "type")]
21pub enum Message {
22 #[serde(rename = "audio")]
23 AudioMessage(AudioMessage),
24 #[serde(rename = "flex")]
25 FlexMessage(FlexMessage),
26 #[serde(rename = "image")]
27 ImageMessage(ImageMessage),
28 #[serde(rename = "imagemap")]
29 ImagemapMessage(ImagemapMessage),
30 #[serde(rename = "location")]
31 LocationMessage(LocationMessage),
32 #[serde(rename = "sticker")]
33 StickerMessage(StickerMessage),
34 #[serde(rename = "template")]
35 TemplateMessage(TemplateMessage),
36 #[serde(rename = "text")]
37 TextMessage(TextMessage),
38 #[serde(rename = "textV2")]
39 TextMessageV2(TextMessageV2),
40 #[serde(rename = "video")]
41 VideoMessage(VideoMessage),
42}
43
44impl Default for Message {
45 fn default() -> Self {
46 Self::AudioMessage(AudioMessage::default())
47 }
48}