From b38de3a32568770fdec51f53762b4d1a98f7970a Mon Sep 17 00:00:00 2001 From: xfy Date: Wed, 26 Mar 2025 15:48:16 +0800 Subject: [PATCH] refactor: refactor condition --- src/http/response.rs | 51 ++++++++++++++++++++++---------------------- src/service.rs | 4 +--- src/utils/service.rs | 9 ++++---- 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/http/response.rs b/src/http/response.rs index a276153..0a2dfd6 100644 --- a/src/http/response.rs +++ b/src/http/response.rs @@ -75,10 +75,11 @@ impl CandyHandler<'_> { let server = format!("{}/{}", NAME, VERSION); headers.insert("Server", server.parse()?); // config headers overrite - if let Some(c_headers) = &self.host.headers { - for (k, v) in c_headers { - headers.insert(k.as_str(), v.parse()?); - } + let Some(c_headers) = &self.host.headers else { + return Ok(()); + }; + for (k, v) in c_headers { + headers.insert(k.as_str(), v.parse()?); } Ok(()) } @@ -174,12 +175,13 @@ impl CandyHandler<'_> { // find resource local file path let mut path = None; for index in router.index.iter() { - if let Some(root) = &router.root { - let p = parse_assets_path(assets_path, root, index); - if Path::new(&p).exists() { - path = Some(p); - break; - } + let Some(root) = &router.root else { + continue; + }; + let p = parse_assets_path(assets_path, root, index); + if Path::new(&p).exists() { + path = Some(p); + break; } } let path = match path { @@ -195,12 +197,11 @@ impl CandyHandler<'_> { Method::POST => handle_get(req, res, &path).await?, // Return the 404 Not Found for other routes. _ => { - if let Some(err_page) = &router.error_page { - let res = res.status(err_page.status); - handle_get(req, res, &err_page.page).await? - } else { - not_found() - } + let Some(err_page) = &router.error_page else { + return Ok(not_found()); + }; + let res = res.status(err_page.status); + handle_get(req, res, &err_page.page).await? } }; Ok(res) @@ -364,16 +365,14 @@ pub async fn handle_not_found( router: &SettingRoute, assets_path: &str, ) -> Result>> { - let res = if let Some(err_page) = &router.error_page { - let res = res.status(err_page.status); - if let Some(root) = &router.root { - let path = parse_assets_path(assets_path, root, &err_page.page); - handle_get(req, res, &path).await? - } else { - not_found() - } - } else { - not_found() + let Some(err_page) = &router.error_page else { + return Ok(not_found()); }; + let Some(root) = &router.root else { + return Ok(not_found()); + }; + let res = res.status(err_page.status); + let path = parse_assets_path(assets_path, root, &err_page.page); + let res = handle_get(req, res, &path).await?; Ok(res) } diff --git a/src/service.rs b/src/service.rs index 4cfb101..361dd6a 100644 --- a/src/service.rs +++ b/src/service.rs @@ -191,9 +191,7 @@ async fn handle_connection( }; if host.certificate.is_some() && host.certificate_key.is_some() { - let tls_acceptor = if let Some(tls_acceptor) = tls_acceptor { - tls_acceptor - } else { + let Some(tls_acceptor) = tls_acceptor else { warn!("tls_acceptor is None"); return; }; diff --git a/src/utils/service.rs b/src/utils/service.rs index 8e6af8c..acd33ff 100644 --- a/src/utils/service.rs +++ b/src/utils/service.rs @@ -64,10 +64,11 @@ pub fn find_route<'a>( let index = i + 1; let path = &all_chars[..index]; let path_str = path.iter().collect::(); - if let Some(router) = route_map.get(&path_str) { - last_router = Some((router, &req_path[index..])); - break; - } + let Some(router) = route_map.get(&path_str) else { + continue; + }; + last_router = Some((router, &req_path[index..])); + break; } let (router, assets_path) = last_router.ok_or(Error::NotFound(not_found_err.into()))?;