From 7f4e06cb27f1463432b745ca0b7175005da25448 Mon Sep 17 00:00:00 2001 From: Azalea Gui Date: Thu, 23 Feb 2023 11:54:06 -0500 Subject: [PATCH] [+] Generator: Cached mime --- backend/src/generator.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backend/src/generator.rs b/backend/src/generator.rs index 54a0197..c8cf6c2 100644 --- a/backend/src/generator.rs +++ b/backend/src/generator.rs @@ -33,6 +33,7 @@ pub trait GeneratorTraits { gen: impl Fn(&PathBuf) -> Result<()>) -> Result; fn get_cached_json(&self, file: &PathBuf, token: &str, gen: impl Fn() -> Result) -> Result where T: de::DeserializeOwned + ?Sized + ser::Serialize; + fn get_mime(&self, file: &PathBuf) -> Result; } impl GeneratorTraits for Generator { @@ -73,5 +74,16 @@ impl GeneratorTraits for Generator { Ok(()) }) } + + /// Get cached mime type + fn get_mime(&self, file: &PathBuf) -> Result { + 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(()) + }) + } }