From 2e541d9f7d7fc7befcbbe2646b73b1c380f87364 Mon Sep 17 00:00:00 2001 From: Sanskar Jethi Date: Sun, 10 Dec 2023 20:36:11 +0000 Subject: [PATCH] Release v0.49.0 --- Cargo.lock | 2 +- Cargo.toml | 2 +- pyproject.toml | 4 ++-- src/executors/mod.rs | 12 ++++++++---- src/server.rs | 4 ++-- src/types/headers.rs | 13 +++---------- src/types/multimap.rs | 2 +- 7 files changed, 18 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2872aa05..b92892ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1183,7 +1183,7 @@ checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" [[package]] name = "robyn" -version = "0.48.0" +version = "0.49.0" dependencies = [ "actix", "actix-files", diff --git a/Cargo.toml b/Cargo.toml index 5e506eb5..04dd85be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "robyn" -version = "0.48.0" +version = "0.49.0" authors = ["Sanskar Jethi "] edition = "2021" description = "A web server that is fast!" diff --git a/pyproject.toml b/pyproject.toml index 7b744d41..2c6fc542 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "robyn" -version = "0.48.0" +version = "0.49.0" description = "A High-Performance, Community-Driven, and Innovator Friendly Web Framework with a Rust runtime." authors = [{ name = "Sanskar Jethi", email = "sansyrox@gmail.com" }] repository = "https://github.com/sparckles/robyn" @@ -43,7 +43,7 @@ Changelog = "https://github.com/sparckles/robyn/blob/main/CHANGELOG.md" [tool.poetry] name = "robyn" -version = "0.48.0" +version = "0.49.0" description = "A High-Performance, Community-Driven, and Innovator Friendly Web Framework with a Rust runtime." authors = ["Sanskar Jethi "] diff --git a/src/executors/mod.rs b/src/executors/mod.rs index 137ea2c7..8320e9f4 100644 --- a/src/executors/mod.rs +++ b/src/executors/mod.rs @@ -1,3 +1,4 @@ +#[deny(clippy::if_same_then_else)] /// This is the module that has all the executor functions /// i.e. the functions that have the responsibility of parsing and executing functions. pub mod web_socket_executors; @@ -31,12 +32,13 @@ where match function.number_of_params { 0 => handler.call0(), 1 => { - if function.args.as_ref(py).get_item("request").is_some() { - handler.call1((function_args,)) - } else if function.args.as_ref(py).get_item("response").is_some() { - // this is for middlewares + if function.args.as_ref(py).get_item("request").is_some() + || function.args.as_ref(py).get_item("response").is_some() + { + // If 'request' is present, call handler with 'function_args' handler.call1((function_args,)) } else { + // If neither 'request' nor 'response' is present handler.call((), Some(kwargs)) } } @@ -44,8 +46,10 @@ where if function.args.as_ref(py).get_item("request").is_some() || function.args.as_ref(py).get_item("response").is_some() { + // If either 'request' or 'response' is present, call handler with 'function_args' and 'kwargs' handler.call((function_args,), Some(kwargs)) } else { + // If neither 'request' nor 'response' is present handler.call((), Some(kwargs)) } } diff --git a/src/server.rs b/src/server.rs index ab6d4c01..13cd1de7 100644 --- a/src/server.rs +++ b/src/server.rs @@ -388,7 +388,7 @@ async fn index( request.path_params = route_params; } for before_middleware in before_middlewares { - request = match execute_middleware_function(&mut request, &before_middleware).await { + request = match execute_middleware_function(&request, &before_middleware).await { Ok(MiddlewareReturn::Request(r)) => r, Ok(MiddlewareReturn::Response(r)) => { // If a before middleware returns a response, we abort the request and return the response @@ -449,7 +449,7 @@ async fn index( after_middlewares.push(function); } for after_middleware in after_middlewares { - response = match execute_middleware_function(&mut response, &after_middleware).await { + response = match execute_middleware_function(&response, &after_middleware).await { Ok(MiddlewareReturn::Request(_)) => { error!("After middleware returned a request"); return Response::internal_server_error(Some(&response.headers)); diff --git a/src/types/headers.rs b/src/types/headers.rs index e1a24761..5608940d 100644 --- a/src/types/headers.rs +++ b/src/types/headers.rs @@ -49,7 +49,7 @@ impl Headers { debug!("Setting header {} to {}", key, value); self.headers .entry(key.to_lowercase()) - .or_insert_with(Vec::new) + .or_default() .push(value); } @@ -105,10 +105,7 @@ impl Headers { self.headers.entry(key).or_insert_with(Vec::new).push(value); } else { let value: Vec = new_value.unwrap().iter().map(|x| x.to_string()).collect(); - self.headers - .entry(key) - .or_insert_with(Vec::new) - .extend(value); + self.headers.entry(key).or_default().extend(value); } } } @@ -167,11 +164,7 @@ impl Headers { for (key, value) in req_headers { let key = key.to_string().to_lowercase(); let value = value.to_str().unwrap().to_string(); - headers - .headers - .entry(key) - .or_insert_with(Vec::new) - .push(value); + headers.headers.entry(key).or_default().push(value); } headers diff --git a/src/types/multimap.rs b/src/types/multimap.rs index 8715d3d5..ac78e68a 100644 --- a/src/types/multimap.rs +++ b/src/types/multimap.rs @@ -21,7 +21,7 @@ impl QueryParams { pub fn set(&mut self, key: String, value: String) { debug!("Setting key: {} to value: {}", key, value); - self.queries.entry(key).or_insert_with(Vec::new).push(value); + self.queries.entry(key).or_default().push(value); debug!("Multimap: {:?}", self.queries); }