use mediatype::MediaTypeBuf;
use mediatype::Name;
use mediatype::Value;
use mediatype::ReadParams;
/// Sorts the mimetypes parameters and calls [canonicalize()][MediaTypeBuf::canonicalize]
/// to produce a normalized mimetype struct that is more suitable for direct comparing.
pub fn normalize_mimetype(mime: &MediaTypeBuf) -> MediaTypeBuf {
let mut params: Vec<(Name,Value)> = Vec::new();
for p in mime.params() {
params.push(p);
}
params.sort_by_key(|p| p.0);
let new_mime = MediaTypeBuf::from_parts(
mime.ty(),
mime.subty(),
mime.suffix(),
params.as_ref()
);
return new_mime.canonicalize();
}