From b0d33535d18f2ca399cd4d4f217489072f063073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Stepanovi=C4=87?= Date: Wed, 12 Jan 2022 09:21:53 +0100 Subject: [PATCH 1/5] Remove unecessary type annotations --- examples/fetching/src/index.rs | 2 +- packages/perseus-cli/src/bin/main.rs | 2 +- packages/perseus-cli/src/serve.rs | 2 +- packages/perseus-macro/src/head.rs | 2 +- packages/perseus-macro/src/template.rs | 2 +- packages/perseus-macro/src/test.rs | 2 +- packages/perseus/src/cache_res.rs | 2 +- packages/perseus/src/router.rs | 2 +- packages/perseus/src/template.rs | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/fetching/src/index.rs b/examples/fetching/src/index.rs index 3cc48b4aed..5f2f14e7cf 100644 --- a/examples/fetching/src/index.rs +++ b/examples/fetching/src/index.rs @@ -53,7 +53,7 @@ pub async fn get_build_state( _locale: String, ) -> RenderFnResultWithCause { // We'll cache the result with `try_cache_res`, which means we only make the request once, and future builds will use the cached result (speeds up development) - let body: String = perseus::cache_fallible_res( + let body = perseus::cache_fallible_res( "ipify", || async { // This just gets the IP address of the machine that built the app diff --git a/packages/perseus-cli/src/bin/main.rs b/packages/perseus-cli/src/bin/main.rs index 1f896fb090..54854a3a55 100644 --- a/packages/perseus-cli/src/bin/main.rs +++ b/packages/perseus-cli/src/bin/main.rs @@ -85,7 +85,7 @@ async fn core(dir: PathBuf) -> Result { } // Parse the CLI options with `clap` - let opts: Opts = Opts::parse(); + let opts = Opts::parse(); // Check the user's environment to make sure they have prerequisites // We do this after any help pages or version numbers have been parsed for snappiness check_env()?; diff --git a/packages/perseus-cli/src/serve.rs b/packages/perseus-cli/src/serve.rs index c81eb7f656..b9ab6e00c2 100644 --- a/packages/perseus-cli/src/serve.rs +++ b/packages/perseus-cli/src/serve.rs @@ -252,7 +252,7 @@ pub fn serve(dir: PathBuf, opts: ServeOpts) -> Result<(i32, Option), Exe Ok((exit_code, None)) } else { // The user doesn't want to run the server, so we'll give them the executable path instead - let exec_str: String = (*exec.lock().unwrap()).to_string(); + let exec_str = (*exec.lock().unwrap()).to_string(); println!("Not running server because `--no-run` was provided. You can run it manually by running the following executable in `.perseus/server/`.\n{}", &exec_str); Ok((0, Some(exec_str))) } diff --git a/packages/perseus-macro/src/head.rs b/packages/perseus-macro/src/head.rs index 53e6bc6776..4a91c33e90 100644 --- a/packages/perseus-macro/src/head.rs +++ b/packages/perseus-macro/src/head.rs @@ -68,7 +68,7 @@ impl Parse for HeadFn { }; // Can either accept a single argument for properties or no arguments let mut inputs = sig.inputs.into_iter(); - let arg: Option = inputs.next(); + let arg = inputs.next(); // We don't care what the type is, as long as it's not `self` if let Some(FnArg::Receiver(arg)) = arg { return Err(syn::Error::new_spanned( diff --git a/packages/perseus-macro/src/template.rs b/packages/perseus-macro/src/template.rs index 6e45416bb5..9eab2bf36b 100644 --- a/packages/perseus-macro/src/template.rs +++ b/packages/perseus-macro/src/template.rs @@ -68,7 +68,7 @@ impl Parse for TemplateFn { }; // Can either accept a single argument for properties or no arguments let mut inputs = sig.inputs.into_iter(); - let arg: Option = inputs.next(); + let arg = inputs.next(); // We don't care what the type is, as long as it's not `self` if let Some(FnArg::Receiver(arg)) = arg { return Err(syn::Error::new_spanned(arg, "templates can't take `self`")); diff --git a/packages/perseus-macro/src/test.rs b/packages/perseus-macro/src/test.rs index 190b1cc8e1..e8b2ec338e 100644 --- a/packages/perseus-macro/src/test.rs +++ b/packages/perseus-macro/src/test.rs @@ -77,7 +77,7 @@ impl Parse for TestFn { }; // Must accept a single argument for the Fantoccini client let mut inputs = sig.inputs.into_iter(); - let arg: FnArg = inputs.next().unwrap_or_else(|| syn::parse_quote! { _: () }); + let arg = inputs.next().unwrap_or_else(|| syn::parse_quote! { _: () }); match &arg { FnArg::Typed(_) => (), // Can't accept `self` diff --git a/packages/perseus/src/cache_res.rs b/packages/perseus/src/cache_res.rs index 3ab2da7ea6..275642ead0 100644 --- a/packages/perseus/src/cache_res.rs +++ b/packages/perseus/src/cache_res.rs @@ -82,7 +82,7 @@ where &filename, err ) }); - let res: D = match serde_json::from_str(&contents) { + let res = match serde_json::from_str(&contents) { Ok(cached_res) => cached_res, // If the stuff in the cache can't be deserialized, we'll force a recreation (we don't recurse because that requires boxing the future) Err(_) => { diff --git a/packages/perseus/src/router.rs b/packages/perseus/src/router.rs index 789f1c579b..6b6af259f0 100644 --- a/packages/perseus/src/router.rs +++ b/packages/perseus/src/router.rs @@ -101,7 +101,7 @@ pub fn match_route( templates: &TemplateMap, locales: &Locales, ) -> RouteVerdict { - let path_vec: Vec<&str> = path_slice.to_vec(); + let path_vec = path_slice.to_vec(); let path_joined = path_vec.join("/"); // This should not have a leading forward slash, it's used for asset fetching by the app shell let verdict; diff --git a/packages/perseus/src/template.rs b/packages/perseus/src/template.rs index dda1681cef..9cf6e0671d 100644 --- a/packages/perseus/src/template.rs +++ b/packages/perseus/src/template.rs @@ -209,11 +209,11 @@ impl Template { pub fn new(path: impl Into + std::fmt::Display) -> Self { Self { path: path.to_string(), - template: Box::new(|_: Option| sycamore::view! {}), + template: Box::new(|_| sycamore::view! {}), // Unlike `template`, this may not be set at all (especially in very simple apps) - head: Box::new(|_: Option| sycamore::view! {}), + head: Box::new(|_| sycamore::view! {}), // We create sensible header defaults here - set_headers: Box::new(|_: Option| default_headers()), + set_headers: Box::new(|_| default_headers()), get_build_paths: None, incremental_generation: false, get_build_state: None, From 0d06522835361b4ab780d05e47eca2a1b34c2c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Stepanovi=C4=87?= Date: Wed, 12 Jan 2022 09:32:02 +0100 Subject: [PATCH 2/5] Initialize let bindings upon declaration --- packages/perseus/src/server/render.rs | 11 +++--- packages/perseus/src/shell.rs | 29 +++++++------- website/src/templates/docs/generation.rs | 49 +++++++++++++----------- 3 files changed, 47 insertions(+), 42 deletions(-) diff --git a/packages/perseus/src/server/render.rs b/packages/perseus/src/server/render.rs index d21b3ee64b..ec3120f190 100644 --- a/packages/perseus/src/server/render.rs +++ b/packages/perseus/src/server/render.rs @@ -368,14 +368,13 @@ pub async fn get_page_for_template( // Otherwise we go as with HTML, request trumps build // Of course, if only one state was defined, we'll just use that regardless (so `None` prioritization is impossible) // If this is the case, the build content will still be served, and then it's up to the client to hydrate it with the new amalgamated state - let state: Option; - if !states.both_defined() { - state = states.get_defined()?; + let state = if !states.both_defined() { + states.get_defined()? } else if template.can_amalgamate_states() { - state = template.amalgamate_states(states)?; + template.amalgamate_states(states)? } else { - state = states.request_state; - } + states.request_state + }; // Combine everything into one JSON object let res = PageData { diff --git a/packages/perseus/src/shell.rs b/packages/perseus/src/shell.rs index 97c697d16d..2eb3e54702 100644 --- a/packages/perseus/src/shell.rs +++ b/packages/perseus/src/shell.rs @@ -168,20 +168,21 @@ pub fn checkpoint(name: &str) { // This will be removed by the next checkpoint let document = web_sys::window().unwrap().document().unwrap(); let container_opt = document.query_selector("#__perseus_checkpoints").unwrap(); - let container: Element; - if let Some(container_i) = container_opt { - container = container_i; - } else { - // If the container doesn't exist yet, create it - container = document.create_element("div").unwrap(); - container.set_id("__perseus_checkpoints"); - document - .query_selector("body") - .unwrap() - .unwrap() - .append_with_node_1(&container) - .unwrap(); - } + let container = match container_opt { + Some(container_i) => container_i, + None => { + // If the container doesn't exist yet, create it + let container = document.create_element("div").unwrap(); + container.set_id("__perseus_checkpoints"); + document + .query_selector("body") + .unwrap() + .unwrap() + .append_with_node_1(&container) + .unwrap(); + container + } + }; // Get the number of checkpoints that already exist with the same ID // We prevent having to worry about checkpoints whose names are subsets of others by using the hyphen as a delimiter diff --git a/website/src/templates/docs/generation.rs b/website/src/templates/docs/generation.rs index 0556f28794..6f55358d62 100644 --- a/website/src/templates/docs/generation.rs +++ b/website/src/templates/docs/generation.rs @@ -115,34 +115,39 @@ pub async fn get_build_state( // We'll do that differently if it doesn't have a version in front of it, which would be the second part containing two dots // Or it could be `next` // If the path is just `/docs` though, we'll render the introduction page for the stable version - let version: &str; - let fs_path = if path == "docs" { - version = &DOCS_MANIFEST.stable; - format!( - "{}/{}/{}/{}", - path_vec[0], // `docs` + let (version, fs_path): (&str, String) = if path == "docs" { + ( &DOCS_MANIFEST.stable, - &locale, - "intro" + format!( + "{}/{}/{}/{}", + path_vec[0], // `docs` + &DOCS_MANIFEST.stable, + &locale, + "intro" + ), ) } else if path_vec[1].split('.').count() == 3 || path_vec[1] == "next" { - version = path_vec[1]; - format!( - "{}/{}/{}/{}", - path_vec[0], // `docs` - path_vec[1], // The version - &locale, - path_vec[2..].join("/") // The rest of the path + ( + path_vec[1], + format!( + "{}/{}/{}/{}", + path_vec[0], // `docs` + path_vec[1], // The version + &locale, + path_vec[2..].join("/") // The rest of the path + ), ) } else { - version = &DOCS_MANIFEST.stable; - // If it doesn't have a version, we'll inject the latest stable one - format!( - "{}/{}/{}/{}", - path_vec[0], // `docs` + ( &DOCS_MANIFEST.stable, - &locale, - path_vec[1..].join("/") // The rest of the path + // If it doesn't have a version, we'll inject the latest stable one + format!( + "{}/{}/{}/{}", + path_vec[0], // `docs` + &DOCS_MANIFEST.stable, + &locale, + path_vec[1..].join("/") // The rest of the path + ), ) }; let fs_path = format!("../../{}.md", fs_path); From c9c7a0b1482fedc368bac9157a472c7956cbb3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Stepanovi=C4=87?= Date: Wed, 12 Jan 2022 09:39:36 +0100 Subject: [PATCH 3/5] Pass u16 by value instead of by reference --- .../builder/src/bin/export_error_page.rs | 2 +- examples/basic/.perseus/src/lib.rs | 4 ++-- .../perseus-actix-web/src/initial_load.rs | 6 ++--- packages/perseus-warp/src/initial_load.rs | 6 ++--- packages/perseus/src/error_pages.rs | 22 +++++++++---------- .../perseus/src/server/build_error_page.rs | 4 ++-- packages/perseus/src/shell.rs | 18 +++++++-------- 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/examples/basic/.perseus/builder/src/bin/export_error_page.rs b/examples/basic/.perseus/builder/src/bin/export_error_page.rs index 64575d580c..0f7eac0e30 100644 --- a/examples/basic/.perseus/builder/src/bin/export_error_page.rs +++ b/examples/basic/.perseus/builder/src/bin/export_error_page.rs @@ -65,7 +65,7 @@ async fn real_main() -> i32 { // Build that error page as the server does let err_page_str = build_error_page( "", - &err_code_to_build_for, + err_code_to_build_for, "", None, &error_pages, diff --git a/examples/basic/.perseus/src/lib.rs b/examples/basic/.perseus/src/lib.rs index c78c0de631..4f187d196f 100644 --- a/examples/basic/.perseus/src/lib.rs +++ b/examples/basic/.perseus/src/lib.rs @@ -127,11 +127,11 @@ pub fn run() -> Result<(), JsValue> { initial_container.set_attribute("style", "display: none;").unwrap(); // Hydrate the error pages // Right now, we don't provide translators to any error pages that have come from the server - error_pages.render_page(&url, &status, &err, None, &container_rx_elem); + error_pages.render_page(&url, status, &err, None, &container_rx_elem); } else { // This is an error from navigating within the app (probably the dev mistyped a link...), so we'll clear the page container_rx_elem.set_inner_html(""); - error_pages.render_page("", &404, "not found", None, &container_rx_elem); + error_pages.render_page("", 404, "not found", None, &container_rx_elem); } }, }; diff --git a/packages/perseus-actix-web/src/initial_load.rs b/packages/perseus-actix-web/src/initial_load.rs index 2e6102ce5c..7f9a24f50d 100644 --- a/packages/perseus-actix-web/src/initial_load.rs +++ b/packages/perseus-actix-web/src/initial_load.rs @@ -21,7 +21,7 @@ use std::rc::Rc; /// Builds on the internal Perseus primitives to provide a utility function that returns an `HttpResponse` automatically. fn return_error_page( url: &str, - status: &u16, + status: u16, // This should already have been transformed into a string (with a source chain etc.) err: &str, translator: Option>, @@ -30,7 +30,7 @@ fn return_error_page( root_id: &str, ) -> HttpResponse { let html = build_error_page(url, status, err, translator, error_pages, html, root_id); - HttpResponse::build(StatusCode::from_u16(*status).unwrap()) + HttpResponse::build(StatusCode::from_u16(status).unwrap()) .content_type("text/html") .body(html) } @@ -54,7 +54,7 @@ pub async fn initial_load( let html_err = |status: u16, err: &str| { return return_error_page( path, - &status, + status, err, None, error_pages, diff --git a/packages/perseus-warp/src/initial_load.rs b/packages/perseus-warp/src/initial_load.rs index cb5aae71c0..c772b64191 100644 --- a/packages/perseus-warp/src/initial_load.rs +++ b/packages/perseus-warp/src/initial_load.rs @@ -19,7 +19,7 @@ use warp::{http::Response, path::FullPath}; /// Builds on the internal Perseus primitives to provide a utility function that returns a `Response` automatically. fn return_error_page( url: &str, - status: &u16, + status: u16, // This should already have been transformed into a string (with a source chain etc.) err: &str, translator: Option>, @@ -28,7 +28,7 @@ fn return_error_page( root_id: &str, ) -> Response { let html = build_error_page(url, status, err, translator, error_pages, html, root_id); - Response::builder().status(*status).body(html).unwrap() + Response::builder().status(status).body(html).unwrap() } /// The handler for calls to any actual pages (first-time visits), which will render the appropriate HTML and then interpolate it into @@ -52,7 +52,7 @@ pub async fn initial_load_handler( let html_err = |status: u16, err: &str| { return return_error_page( path, - &status, + status, err, None, error_pages, diff --git a/packages/perseus/src/error_pages.rs b/packages/perseus/src/error_pages.rs index 027da7e5e8..c67653d6e6 100644 --- a/packages/perseus/src/error_pages.rs +++ b/packages/perseus/src/error_pages.rs @@ -45,11 +45,11 @@ impl ErrorPages { self.status_pages.insert(status, page); } /// Gets the internal template function to render. - fn get_template_fn(&self, status: &u16) -> &ErrorPageTemplate { + fn get_template_fn(&self, status: u16) -> &ErrorPageTemplate { // Check if we have an explicitly defined page for this status code // If not, we'll render the fallback page - match self.status_pages.contains_key(status) { - true => self.status_pages.get(status).unwrap(), + match self.status_pages.contains_key(&status) { + true => self.status_pages.get(&status).unwrap(), false => &self.fallback, } } @@ -57,13 +57,13 @@ impl ErrorPages { pub fn get_template_for_page( &self, url: &str, - status: &u16, + status: u16, err: &str, translator: Option>, ) -> View { let template_fn = self.get_template_fn(status); - template_fn(url.to_string(), *status, err.to_string(), translator) + template_fn(url.to_string(), status, err.to_string(), translator) } } impl ErrorPages { @@ -71,7 +71,7 @@ impl ErrorPages { pub fn render_page( &self, url: &str, - status: &u16, + status: u16, err: &str, translator: Option>, container: &Element, @@ -79,7 +79,7 @@ impl ErrorPages { let template_fn = self.get_template_fn(status); // Render that to the given container sycamore::render_to( - || template_fn(url.to_string(), *status, err.to_string(), translator), + || template_fn(url.to_string(), status, err.to_string(), translator), container, ); } @@ -90,7 +90,7 @@ impl ErrorPages { pub fn hydrate_page( &self, url: &str, - status: &u16, + status: u16, err: &str, translator: Option>, container: &Element, @@ -98,7 +98,7 @@ impl ErrorPages { let template_fn = self.get_template_fn(status); // Render that to the given container sycamore::hydrate_to( - || template_fn(url.to_string(), *status, err.to_string(), translator), + || template_fn(url.to_string(), status, err.to_string(), translator), container, ); } @@ -108,14 +108,14 @@ impl ErrorPages { pub fn render_to_string( &self, url: &str, - status: &u16, + status: u16, err: &str, translator: Option>, ) -> String { let template_fn = self.get_template_fn(status); // Render that to the given container sycamore::render_to_string(|| { - template_fn(url.to_string(), *status, err.to_string(), translator) + template_fn(url.to_string(), status, err.to_string(), translator) }) } } diff --git a/packages/perseus/src/server/build_error_page.rs b/packages/perseus/src/server/build_error_page.rs index 6fcc63b47c..c143b1a21b 100644 --- a/packages/perseus/src/server/build_error_page.rs +++ b/packages/perseus/src/server/build_error_page.rs @@ -8,7 +8,7 @@ use std::rc::Rc; /// exists then so the server doesn't have to do nearly as much work). pub fn build_error_page( url: &str, - status: &u16, + status: u16, // This should already have been transformed into a string (with a source chain etc.) err: &str, translator: Option>, @@ -21,7 +21,7 @@ pub fn build_error_page( // Right now, translators are never included in transmitted error pages let error_page_data = serde_json::to_string(&ErrorPageData { url: url.to_string(), - status: *status, + status, err: err.to_string(), }) .unwrap(); diff --git a/packages/perseus/src/shell.rs b/packages/perseus/src/shell.rs index 2eb3e54702..4c7a353a76 100644 --- a/packages/perseus/src/shell.rs +++ b/packages/perseus/src/shell.rs @@ -260,9 +260,9 @@ pub async fn app_shell( container_rx_elem.set_inner_html(""); match &err { // These errors happen because we couldn't get a translator, so they certainly don't get one - ClientError::FetchError(FetchError::NotOk { url, status, .. }) => return error_pages.render_page(url, status, &fmt_err(&err), None, &container_rx_elem), - ClientError::FetchError(FetchError::SerFailed { url, .. }) => return error_pages.render_page(url, &500, &fmt_err(&err), None, &container_rx_elem), - ClientError::LocaleNotSupported { .. } => return error_pages.render_page(&format!("/{}/...", locale), &404, &fmt_err(&err), None, &container_rx_elem), + ClientError::FetchError(FetchError::NotOk { url, status, .. }) => return error_pages.render_page(url, *status, &fmt_err(&err), None, &container_rx_elem), + ClientError::FetchError(FetchError::SerFailed { url, .. }) => return error_pages.render_page(url, 500, &fmt_err(&err), None, &container_rx_elem), + ClientError::LocaleNotSupported { .. } => return error_pages.render_page(&format!("/{}/...", locale), 404, &fmt_err(&err), None, &container_rx_elem), // No other errors should be returned _ => panic!("expected 'AssetNotOk'/'AssetSerFailed'/'LocaleNotSupported' error, found other unacceptable error") } @@ -351,9 +351,9 @@ pub async fn app_shell( Ok(translator) => translator, Err(err) => match &err { // These errors happen because we couldn't get a translator, so they certainly don't get one - ClientError::FetchError(FetchError::NotOk { url, status, .. }) => return error_pages.render_page(url, status, &fmt_err(&err), None, &container_rx_elem), - ClientError::FetchError(FetchError::SerFailed { url, .. }) => return error_pages.render_page(url, &500, &fmt_err(&err), None, &container_rx_elem), - ClientError::LocaleNotSupported { locale } => return error_pages.render_page(&format!("/{}/...", locale), &404, &fmt_err(&err), None, &container_rx_elem), + ClientError::FetchError(FetchError::NotOk { url, status, .. }) => return error_pages.render_page(url, *status, &fmt_err(&err), None, &container_rx_elem), + ClientError::FetchError(FetchError::SerFailed { url, .. }) => return error_pages.render_page(url, 500, &fmt_err(&err), None, &container_rx_elem), + ClientError::LocaleNotSupported { locale } => return error_pages.render_page(&format!("/{}/...", locale), 404, &fmt_err(&err), None, &container_rx_elem), // No other errors should be returned _ => panic!("expected 'AssetNotOk'/'AssetSerFailed'/'LocaleNotSupported' error, found other unacceptable error") } @@ -397,7 +397,7 @@ pub async fn app_shell( // No translators ready yet None => error_pages.render_page( &asset_url, - &404, + 404, "page not found", None, &container_rx_elem, @@ -406,7 +406,7 @@ pub async fn app_shell( Err(err) => match &err { // No translators ready yet ClientError::FetchError(FetchError::NotOk { url, status, .. }) => error_pages - .render_page(url, status, &fmt_err(&err), None, &container_rx_elem), + .render_page(url, *status, &fmt_err(&err), None, &container_rx_elem), // No other errors should be returned _ => panic!("expected 'AssetNotOk' error, found other unacceptable error"), }, @@ -432,7 +432,7 @@ pub async fn app_shell( // We render this rather than hydrating because otherwise we'd need a `HydrateNode` at the plugins level, which is way too inefficient #[cfg(not(feature = "hydrate"))] container_rx_elem.set_inner_html(""); - error_pages.render_page(&url, &status, &err, None, &container_rx_elem); + error_pages.render_page(&url, status, &err, None, &container_rx_elem); } }; } From b2456dca319afd54e47bf4d8d42a63af55c03f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Stepanovi=C4=87?= Date: Wed, 12 Jan 2022 12:33:51 +0100 Subject: [PATCH 4/5] Clean up HttpRequest builder logic in conv_req.rs Removed some unnecessary comments and rewrote repeated reassignments to method chaining. --- packages/perseus-actix-web/src/conv_req.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/perseus-actix-web/src/conv_req.rs b/packages/perseus-actix-web/src/conv_req.rs index 24d4cfb0a4..1a859c8ce6 100644 --- a/packages/perseus-actix-web/src/conv_req.rs +++ b/packages/perseus-actix-web/src/conv_req.rs @@ -4,19 +4,15 @@ use perseus::{HttpRequest, Request}; /// Converts an Actix Web request into an `http::request`. pub fn convert_req(raw: &actix_web::HttpRequest) -> Result { let mut builder = HttpRequest::builder(); - // Add headers one by one + for (name, val) in raw.headers() { - // Each method call consumes and returns `self`, so we re-self-assign builder = builder.header(name, val); } - // The URI to which the request was sent - builder = builder.uri(raw.uri()); - // The method (e.g. GET, POST, etc.) - builder = builder.method(raw.method()); - // The HTTP version used - builder = builder.version(raw.version()); builder + .uri(raw.uri()) + .method(raw.method()) + .version(raw.version()) // We always use an empty body because, in a Perseus request, only the URI matters // Any custom data should therefore be sent in headers (if you're doing that, consider a dedicated API) .body(()) From 27605c511b63203ae13794412302a3498859360d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vuka=C5=A1in=20Stepanovi=C4=87?= Date: Wed, 12 Jan 2022 12:40:01 +0100 Subject: [PATCH 5/5] Remove unecessary type annotations in `let mut` --- packages/perseus/src/build.rs | 2 +- packages/perseus/src/locales.rs | 2 +- packages/perseus/src/plugins/functional.rs | 2 +- packages/perseus/src/server/render.rs | 2 +- packages/perseus/src/translator/fluent.rs | 3 +-- website/src/templates/docs/generation.rs | 2 +- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/perseus/src/build.rs b/packages/perseus/src/build.rs index a3a8d99d20..d68b2b3349 100644 --- a/packages/perseus/src/build.rs +++ b/packages/perseus/src/build.rs @@ -255,7 +255,7 @@ pub async fn build_templates_for_locale( exporting: bool, ) -> Result<(), ServerError> { // The render configuration stores a list of pages to the root paths of their templates - let mut render_cfg: HashMap = HashMap::new(); + let mut render_cfg = HashMap::new(); // Create each of the templates let mut futs = Vec::new(); for template in templates.values() { diff --git a/packages/perseus/src/locales.rs b/packages/perseus/src/locales.rs index 6277850936..1d257fd44b 100644 --- a/packages/perseus/src/locales.rs +++ b/packages/perseus/src/locales.rs @@ -11,7 +11,7 @@ pub struct Locales { impl Locales { /// Gets all the supported locales by combining the default, and other. pub fn get_all(&self) -> Vec<&String> { - let mut vec: Vec<&String> = vec![&self.default]; + let mut vec = vec![&self.default]; vec.extend(&self.other); vec diff --git a/packages/perseus/src/plugins/functional.rs b/packages/perseus/src/plugins/functional.rs index eaccc5e656..257d274b7c 100644 --- a/packages/perseus/src/plugins/functional.rs +++ b/packages/perseus/src/plugins/functional.rs @@ -14,7 +14,7 @@ impl PluginAction> for FunctionalPluginAction>, ) -> HashMap { - let mut returns: HashMap = HashMap::new(); + let mut returns = HashMap::new(); for (plugin_name, runner) in &self.runners { let ret = runner( &action_data, diff --git a/packages/perseus/src/server/render.rs b/packages/perseus/src/server/render.rs index ec3120f190..7d17f3786c 100644 --- a/packages/perseus/src/server/render.rs +++ b/packages/perseus/src/server/render.rs @@ -225,7 +225,7 @@ pub async fn get_page_for_template( // The same applies for the document metadata let mut head = String::new(); // Multiple rendering strategies may need to amalgamate different states - let mut states: States = States::new(); + let mut states = States::new(); // Handle build state (which might use revalidation or incremental) if template.uses_build_state() || template.is_basic() { diff --git a/packages/perseus/src/translator/fluent.rs b/packages/perseus/src/translator/fluent.rs index 08f5be8a38..764d0aa784 100644 --- a/packages/perseus/src/translator/fluent.rs +++ b/packages/perseus/src/translator/fluent.rs @@ -44,8 +44,7 @@ impl FluentTranslator { source: Box::new(err), } })?; - let mut bundle: FluentBundle = - FluentBundle::new_concurrent(vec![lang_id]); + let mut bundle = FluentBundle::new_concurrent(vec![lang_id]); bundle.add_resource(resource).map_err(|errs| { TranslatorError::TranslationsStrSerFailed { locale: locale.clone(), diff --git a/website/src/templates/docs/generation.rs b/website/src/templates/docs/generation.rs index 6f55358d62..6d98812381 100644 --- a/website/src/templates/docs/generation.rs +++ b/website/src/templates/docs/generation.rs @@ -294,7 +294,7 @@ pub async fn get_build_state( pub async fn get_build_paths() -> RenderFnResult> { // We start off by rendering the `/docs` page itself as an alias - let mut paths: Vec = vec!["".to_string()]; + let mut paths = vec!["".to_string()]; // Get the `docs/` directory (relative to `.perseus/`) let docs_dir = PathBuf::from("../../docs"); // Loop through it