messaging-api-line 0.0.2

This document describes LINE Messaging API.
Documentation
/*
 * LINE Messaging API
 *
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

use super::{
    AudioMessage, FlexMessage, ImageMessage, ImagemapMessage, LocationMessage, StickerMessage,
    TemplateMessage, TextMessage, TextMessageV2, VideoMessage,
};

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Message {
    #[serde(rename = "audio")]
    AudioMessage(AudioMessage),
    #[serde(rename = "flex")]
    FlexMessage(FlexMessage),
    #[serde(rename = "image")]
    ImageMessage(ImageMessage),
    #[serde(rename = "imagemap")]
    ImagemapMessage(ImagemapMessage),
    #[serde(rename = "location")]
    LocationMessage(LocationMessage),
    #[serde(rename = "sticker")]
    StickerMessage(StickerMessage),
    #[serde(rename = "template")]
    TemplateMessage(TemplateMessage),
    #[serde(rename = "text")]
    TextMessage(TextMessage),
    #[serde(rename = "textV2")]
    TextMessageV2(TextMessageV2),
    #[serde(rename = "video")]
    VideoMessage(VideoMessage),
}

impl Default for Message {
    fn default() -> Self {
        Self::AudioMessage(AudioMessage::default())
    }
}