use serde::{Deserialize, Serialize};
use super::{
AudioMessageContent, FileMessageContent, ImageMessageContent, LocationMessageContent,
StickerMessageContent, TextMessageContent, VideoMessageContent,
};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum MessageContent {
#[serde(rename = "text")]
TextMessageContent(TextMessageContent),
#[serde(rename = "audio")]
AudioMessageContent(AudioMessageContent),
#[serde(rename = "file")]
FileMessageContent(FileMessageContent),
#[serde(rename = "image")]
ImageMessageContent(ImageMessageContent),
#[serde(rename = "location")]
LocationMessageContent(LocationMessageContent),
#[serde(rename = "sticker")]
StickerMessageContent(StickerMessageContent),
#[serde(rename = "video")]
VideoMessageContent(VideoMessageContent),
}
impl Default for MessageContent {
fn default() -> Self {
MessageContent::TextMessageContent(TextMessageContent::default())
}
}