use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum MediaType {
Image,
Video,
}
impl MediaType {
pub fn from_extension(ext: &str) -> Option<Self> {
match ext.to_lowercase().as_str() {
"jpg" | "jpeg" | "png" | "gif" | "webp" | "svg" | "bmp" | "ico" => Some(Self::Image),
"mp4" | "webm" | "mov" | "avi" | "mkv" => Some(Self::Video),
_ => None,
}
}
pub fn as_str(&self) -> &str {
match self {
Self::Image => "image",
Self::Video => "video",
}
}
}