diff options
Diffstat (limited to 'server/src/helper/cache.rs')
| -rw-r--r-- | server/src/helper/cache.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/server/src/helper/cache.rs b/server/src/helper/cache.rs index d4c0595..93743e7 100644 --- a/server/src/helper/cache.rs +++ b/server/src/helper/cache.rs @@ -12,6 +12,7 @@ use rocket::{ }; use std::{ hash::{DefaultHasher, Hash, Hasher}, + io::Cursor, os::unix::fs::MetadataExt, path::Path, }; @@ -54,3 +55,17 @@ impl<'r> Responder<'r, 'static> for CacheControlFile { } } } + +pub struct CacheControlImage(pub Vec<u8>); +impl<'r> Responder<'r, 'static> for CacheControlImage { + fn respond_to(self, _req: &'r Request<'_>) -> response::Result<'static> { + Response::build() + .status(Status::Ok) + .header(Header::new( + "cache-control", + "private, immutable, maxage=86400", + )) + .sized_body(self.0.len(), Cursor::new(self.0)) + .ok() + } +} |