1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
use errors::{Error, Result}; use extern_mime; use serde; use std::fmt; use std::result; use std::str::FromStr; #[derive(Debug, Clone)] pub struct Mime(extern_mime::Mime); impl serde::Serialize for Mime { fn serialize<S>(&self, serializer: S) -> result::Result<S::Ok, S::Error> where S: serde::Serializer, { serializer.serialize_str(&format!("{}", self.0)) } } impl FromStr for Mime { type Err = Error; fn from_str(s: &str) -> Result<Self> { Ok(Mime(s.parse()?)) } } impl fmt::Display for Mime { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", self.0) } }