/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use data_url::mime::Mime; use headers::ContentType; pub(crate) static APPLICATION: &str = "application"; pub(crate) static CHARSET: &str = "charset"; pub(crate) static HTML: &str = "html"; pub(crate) static TEXT: &str = "text"; pub(crate) static XML: &str = "xml"; /// Convenience methods to make the data_url Mime type more ergonomic. pub(crate) trait MimeExt { /// Checks that the subtype has a given suffix. /// Eg. image/svg+xml has the the xml suffix. fn has_suffix(&self, suffix: &str) -> bool; /// TODO: replace by a derive on data_url. fn clone(&self) -> Self; /// Build a Mime from the value of a Content-Type header. fn from_ct(ct: ContentType) -> Self; } impl MimeExt for Mime { fn has_suffix(&self, suffix: &str) -> bool { self.subtype.ends_with(&format!("+{}", suffix)) } fn clone(&self) -> Self { Self { type_: self.type_.clone(), subtype: self.subtype.clone(), parameters: self.parameters.clone(), } } fn from_ct(ct: ContentType) -> Self { ct.to_string().parse().unwrap() } }