Merge pull request #1545 from RealOrangeOne/icon-client-cache
Client caching
This commit is contained in:
commit
01d8056c73
|
@ -51,7 +51,7 @@ fn icon(domain: String) -> Option<Cached<Content<Vec<u8>>>> {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_icon(&domain).map(|icon| Cached::long(Content(ContentType::new("image", "x-icon"), icon)))
|
get_icon(&domain).map(|icon| Cached::ttl(Content(ContentType::new("image", "x-icon"), icon), CONFIG.icon_cache_ttl()))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns if the domain provided is valid or not.
|
/// Returns if the domain provided is valid or not.
|
||||||
|
|
14
src/util.rs
14
src/util.rs
|
@ -92,17 +92,21 @@ impl Fairing for CORS {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Cached<R>(R, &'static str);
|
pub struct Cached<R>(R, String);
|
||||||
|
|
||||||
impl<R> Cached<R> {
|
impl<R> Cached<R> {
|
||||||
pub const fn long(r: R) -> Cached<R> {
|
pub fn long(r: R) -> Cached<R> {
|
||||||
// 7 days
|
// 7 days
|
||||||
Self(r, "public, max-age=604800")
|
Self::ttl(r, 604800)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const fn short(r: R) -> Cached<R> {
|
pub fn short(r: R) -> Cached<R> {
|
||||||
// 10 minutes
|
// 10 minutes
|
||||||
Self(r, "public, max-age=600")
|
Self(r, String::from("public, max-age=600"))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn ttl(r: R, ttl: u64) -> Cached<R> {
|
||||||
|
Self(r, format!("public, immutable, max-age={}", ttl))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue