refactor: helpers and filters functions
Diff
src/cache.rs | 13 +++----------
src/filters.rs | 6 ++++++
src/helpers.rs | 3 +--
src/lib.rs | 1 +
src/rejection.rs | 2 +-
src/server.rs | 14 +++++++-------
6 files changed, 19 insertions(+), 20 deletions(-)
@@ -1,8 +1,8 @@
const CACHE_EXT_ONE_HOUR: [&str; 4] = ["atom", "json", "rss", "xml"];
const CACHE_EXT_ONE_YEAR: [&str; 30] = [
"bmp", "bz2", "css", "map", "doc", "gif", "gz", "htc", "ico", "jpg", "mp3", "mp4", "ogg",
"ogv", "pdf", "png", "rar", "tar", "tgz", "wav", "weba", "webm", "webp", "woff", "zip", "jpeg",
"js", "mjs", "rtf", "woff2",
"bmp", "bz2", "css", "doc", "gif", "gz", "htc", "ico", "jpeg", "jpg", "js", "map", "mjs",
"mp3", "mp4", "ogg", "ogv", "pdf", "png", "rar", "rtf", "tar", "tgz", "wav", "weba", "webm",
"webp", "woff", "woff2", "zip",
];
@@ -36,10 +36,3 @@ pub fn control_headers(res: warp::fs::File) -> warp::reply::WithHeader<warp::fs:
fn duration(n: u64) -> u32 {
std::cmp::min(n, u32::MAX as u64) as u32
}
pub fn has_accept_encoding(
val: &'static str,
) -> impl warp::Filter<Extract = (), Error = warp::Rejection> + Copy {
warp::header::contains("accept-encoding", val)
}
@@ -0,0 +1,6 @@
pub fn has_accept_encoding(
val: &'static str,
) -> impl warp::Filter<Extract = (), Error = warp::Rejection> + Copy {
warp::header::contains("accept-encoding", val)
}
@@ -27,11 +27,10 @@ where
}
}
pub fn read_file_content(p: &str) -> String {
if !p.is_empty() && Path::new(p).exists() {
return fs::read_to_string(p).unwrap_or_default();
}
String::new()
}
@@ -6,6 +6,7 @@ extern crate anyhow;
pub mod cache;
pub mod config;
pub mod cors;
pub mod filters;
pub mod helpers;
pub mod logger;
pub mod rejection;
@@ -3,7 +3,7 @@ use std::convert::Infallible;
use warp::http::StatusCode;
use warp::{Rejection, Reply};
pub async fn handle_rejection(
page_404: String,
page_50x: String,
@@ -1,7 +1,7 @@
use std::net::{IpAddr, SocketAddr};
use warp::Filter;
use crate::{cache, config, cors, helpers, logger, rejection, signals, Result};
use crate::{cache, config, cors, filters, helpers, logger, rejection, signals, Result};
pub struct Server {
@@ -95,7 +95,7 @@ impl Server {
);
warp::serve(
public_head.with(cors_filter.clone()).or(warp::get()
.and(cache::has_accept_encoding("br"))
.and(filters::has_accept_encoding("br"))
.and(with_dir)
.with(cors_filter.clone())
.or(public_get_default.with(cors_filter))),
@@ -105,7 +105,7 @@ impl Server {
} else {
warp::serve(
public_head.or(warp::get()
.and(cache::has_accept_encoding("br"))
.and(filters::has_accept_encoding("br"))
.and(with_dir)
.or(public_get_default)),
)
@@ -131,7 +131,7 @@ impl Server {
);
warp::serve(
public_head.with(cors_filter.clone()).or(warp::get()
.and(cache::has_accept_encoding("deflate"))
.and(filters::has_accept_encoding("deflate"))
.and(with_dir)
.with(cors_filter.clone())
.or(public_get_default.with(cors_filter))),
@@ -141,7 +141,7 @@ impl Server {
} else {
warp::serve(
public_head.or(warp::get()
.and(cache::has_accept_encoding("deflate"))
.and(filters::has_accept_encoding("deflate"))
.and(with_dir)
.or(public_get_default)),
)
@@ -167,7 +167,7 @@ impl Server {
);
warp::serve(
public_head.with(cors_filter.clone()).or(warp::get()
.and(cache::has_accept_encoding("gzip"))
.and(filters::has_accept_encoding("gzip"))
.and(with_dir)
.with(cors_filter.clone())
.or(public_get_default.with(cors_filter))),
@@ -177,7 +177,7 @@ impl Server {
} else {
warp::serve(
public_head.or(warp::get()
.and(cache::has_accept_encoding("gzip"))
.and(filters::has_accept_encoding("gzip"))
.and(with_dir)
.or(public_get_default)),
)