refactor: prefer optional slice references for several vec data args
Diff
src/custom_headers.rs | 10 +++-------
src/handler.rs | 32 ++++++++++++++++++++++----------
src/redirects.rs | 4 ++--
src/rewrites.rs | 4 ++--
src/virtual_hosts.rs | 8 ++++----
5 files changed, 33 insertions(+), 25 deletions(-)
@@ -11,15 +11,11 @@ use hyper::{Body, Response};
use crate::settings::Headers;
pub fn append_headers(
uri: &str,
headers_opts_vec: &Option<Vec<Headers>>,
resp: &mut Response<Body>,
) {
if let Some(headers_vec) = headers_opts_vec {
pub fn append_headers(uri_path: &str, headers_opts: Option<&[Headers]>, resp: &mut Response<Body>) {
if let Some(headers_vec) = headers_opts {
for headers_entry in headers_vec.iter() {
if headers_entry.source.is_match(uri) {
if headers_entry.source.is_match(uri_path) {
for (name, value) in &headers_entry.headers {
resp.headers_mut().insert(name, value.to_owned());
@@ -232,9 +232,10 @@ impl RequestHandler {
if let Some(advanced) = &self.opts.advanced_opts {
if let Some(redirects) =
redirects::get_redirection(uri_path.clone().as_str(), &advanced.redirects)
{
if let Some(redirects) = redirects::get_redirection(
uri_path.clone().as_str(),
advanced.redirects.as_deref(),
) {
if let Some(regex_caps) = redirects.source.captures(uri_path.as_str()) {
let caps_range = 0..regex_caps.len();
@@ -290,9 +291,10 @@ impl RequestHandler {
}
if let Some(rewrite) =
rewrites::rewrite_uri_path(uri_path.clone().as_str(), &advanced.rewrites)
{
if let Some(rewrite) = rewrites::rewrite_uri_path(
uri_path.clone().as_str(),
advanced.rewrites.as_deref(),
) {
if let Some(regex_caps) = rewrite.source.captures(uri_path.as_str()) {
let caps_range = 0..regex_caps.len();
@@ -348,8 +350,10 @@ impl RequestHandler {
}
}
if let Some(root) = virtual_hosts::get_real_root(&advanced.virtual_hosts, headers) {
if let Some(root) =
virtual_hosts::get_real_root(headers, advanced.virtual_hosts.as_deref())
{
base_path = root;
}
}
@@ -425,7 +429,11 @@ impl RequestHandler {
if let Some(advanced) = &self.opts.advanced_opts {
custom_headers::append_headers(uri_path, &advanced.headers, &mut resp)
custom_headers::append_headers(
uri_path,
advanced.headers.as_deref(),
&mut resp,
)
}
Ok(resp)
@@ -491,7 +499,11 @@ impl RequestHandler {
if let Some(advanced) = &self.opts.advanced_opts {
custom_headers::append_headers(uri_path, &advanced.headers, &mut resp)
custom_headers::append_headers(
uri_path,
advanced.headers.as_deref(),
&mut resp,
)
}
return Ok(resp);
@@ -12,9 +12,9 @@ use crate::settings::Redirects;
pub fn get_redirection<'a>(
uri_path: &'a str,
redirects_opts_vec: &'a Option<Vec<Redirects>>,
redirects_opts: Option<&'a [Redirects]>,
) -> Option<&'a Redirects> {
if let Some(redirects_vec) = redirects_opts_vec {
if let Some(redirects_vec) = redirects_opts {
for redirect_entry in redirects_vec.iter() {
if redirect_entry.source.is_match(uri_path) {
@@ -12,9 +12,9 @@ use crate::settings::Rewrites;
pub fn rewrite_uri_path<'a>(
uri_path: &'a str,
rewrites_opts_vec: &'a Option<Vec<Rewrites>>,
rewrites_opts: Option<&'a [Rewrites]>,
) -> Option<&'a Rewrites> {
if let Some(rewrites_vec) = rewrites_opts_vec {
if let Some(rewrites_vec) = rewrites_opts {
for rewrites_entry in rewrites_vec.iter() {
if rewrites_entry.source.is_match(uri_path) {
@@ -3,7 +3,7 @@
use hyper::{header::HOST, HeaderMap};
@@ -11,12 +11,12 @@ use std::path::PathBuf;
use crate::settings::VirtualHosts;
pub fn get_real_root<'a>(
vhosts_vec: &'a Option<Vec<VirtualHosts>>,
headers: &HeaderMap,
vhosts_opts: Option<&'a [VirtualHosts]>,
) -> Option<&'a PathBuf> {
if let Some(vhosts) = vhosts_vec {
if let Some(vhosts) = vhosts_opts {
if let Ok(host_str) = headers.get(HOST)?.to_str() {
for vhost in vhosts {
if vhost.host == host_str {