webhook_line/models/
message_content.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14use super::{
15 AudioMessageContent, FileMessageContent, ImageMessageContent, LocationMessageContent,
16 StickerMessageContent, TextMessageContent, VideoMessageContent,
17};
18
19#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
20#[serde(tag = "type")]
21pub enum MessageContent {
22 #[serde(rename = "audio")]
23 AudioMessageContent(AudioMessageContent),
24 #[serde(rename = "file")]
25 FileMessageContent(FileMessageContent),
26 #[serde(rename = "image")]
27 ImageMessageContent(ImageMessageContent),
28 #[serde(rename = "location")]
29 LocationMessageContent(LocationMessageContent),
30 #[serde(rename = "sticker")]
31 StickerMessageContent(StickerMessageContent),
32 #[serde(rename = "text")]
33 TextMessageContent(TextMessageContent),
34 #[serde(rename = "video")]
35 VideoMessageContent(VideoMessageContent),
36}
37
38impl Default for MessageContent {
39 fn default() -> Self {
40 Self::AudioMessageContent(AudioMessageContent::default())
41 }
42}