Mercurial > core / rust/lib/obj/src/object/media.rs
changeset 698: |
96958d3eb5b0 |
parent: |
0ccbbd142694
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: |
-rw-r--r-- |
description: |
fixes |
6 use serde::{Deserialize, Serialize}; 7 use std::{fmt, str::FromStr}; 8 /// External Media types. 9 #[derive(Serialize, Deserialize, Debug, Hash, PartialEq)] 12 pub extension: MediaExtension, 16 pub fn new(name: &str, ext: &str) -> Self { 18 name: name.to_string(), 19 extension: MediaExtension::from_str(ext).unwrap(), 24 impl Objective for Media {} 26 #[derive(Serialize, Deserialize, Debug, Hash, PartialEq)] 27 pub enum MediaExtension { 35 impl fmt::Display for MediaExtension { 36 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 38 MediaExtension::Mp3 => write!(f, "mp3"), 39 MediaExtension::Wav => write!(f, "wav"), 40 MediaExtension::Png => write!(f, "png"), 41 MediaExtension::Mp4 => write!(f, "mp4"), 42 MediaExtension::None => write!(f, ""), 47 impl FromStr for MediaExtension { 50 fn from_str(input: &str) -> Result<MediaExtension, Self::Err> { 52 "mp3" => Ok(MediaExtension::Mp3), 53 "wav" => Ok(MediaExtension::Wav), 54 "png" => Ok(MediaExtension::Png), 55 "mp4" => Ok(MediaExtension::Mp4), 56 "" => Ok(MediaExtension::None),