messaging_api_line/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 */
10
11use 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}