use mime::Mime;
use unix_path::Path;
// Extremely manual; using `std::path` here would result in platform-dependent
// behaviour when it's not appropriate (the URLs passed here always use `/` and
// are parsed like URLs). Using `unix_path` might be an option, but it's not
// clearly
pub fn from_path
(path: P) -> Result
where
P: AsRef,
{
let path = path.as_ref();
let extension = path.extension().and_then(|ext| ext.to_str());
let mime = match extension {
Some("css") => "text/css; charset=utf-8",
Some("js") => "text/javascript; charset=utf-8",
Some("json") => "application/json",
Some("html") => "text/html; charset=utf-8",
Some("png") => "image/png",
_ => "application/octet-stream",
};
let mime = mime.parse()?;
Ok(mime)
}