[+] Generator: Cached mime

This commit is contained in:
Azalea Gui
2023-02-23 11:54:06 -05:00
parent 6e7a6b167b
commit 7f4e06cb27
+12
View File
@@ -33,6 +33,7 @@ pub trait GeneratorTraits {
gen: impl Fn(&PathBuf) -> Result<()>) -> Result<T>;
fn get_cached_json<T>(&self, file: &PathBuf, token: &str, gen: impl Fn() -> Result<T>) -> Result<T>
where T: de::DeserializeOwned + ?Sized + ser::Serialize;
fn get_mime(&self, file: &PathBuf) -> Result<String>;
}
impl GeneratorTraits for Generator {
@@ -73,5 +74,16 @@ impl GeneratorTraits for Generator {
Ok(())
})
}
/// Get cached mime type
fn get_mime(&self, file: &PathBuf) -> Result<String> {
self.get_cached(&file, "mime", |f| {
Ok(fs::read_to_string(f)?)
}, |f| {
let mut guesser = self.mime_db.guess_mime_type();
write_sf(f, guesser.path(file).guess().mime_type().to_string())?;
Ok(())
})
}
}