aboutsummaryrefslogtreecommitdiff
path: root/server/src/helper/cache.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/helper/cache.rs')
-rw-r--r--server/src/helper/cache.rs15
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()
+ }
+}