use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaEntityResponse {
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "contentType")]
pub content_type: ContentType,
}
impl MediaEntityResponse {
pub fn new(url: String, content_type: ContentType) -> MediaEntityResponse {
MediaEntityResponse { url, content_type }
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ContentType {
#[serde(rename = "IMAGE")]
Image,
#[serde(rename = "VIDEO")]
Video,
#[serde(rename = "ANIMATION")]
Animation,
#[serde(rename = "THREE_D")]
ThreeD,
#[serde(rename = "TEXT")]
Text,
#[serde(rename = "GIF")]
Gif,
#[serde(rename = "UNKNOWN_TYPE")]
UnknownType,
#[serde(rename = "SVG")]
Svg,
#[serde(rename = "AUDIO")]
Audio,
}
impl Default for ContentType {
fn default() -> ContentType {
Self::Image
}
}