diff --git a/src/request.rs b/src/request.rs index f460653..1ca9af8 100644 --- a/src/request.rs +++ b/src/request.rs @@ -44,13 +44,12 @@ impl LambdaHttpEvent<'_> { match self { Self::ApiGatewayHttpV2(event) => { let path = encode_path_query(&event.raw_path); - let query = &event.raw_query_string as &str; - if query.is_empty() { - // No query string - path.into_owned() - } else { + + match event.raw_query_string.as_ref().filter(|x| !x.is_empty()) { // With query string - format!("{}?{}", path, query) + Some(query) => format!("{}?{}", path, query), + // No query string + _ => path.into_owned(), } } Self::ApiGatewayRestOrAlb(event) => { @@ -242,7 +241,7 @@ pub(crate) struct ApiGatewayHttpV2Event<'a> { #[allow(dead_code)] version: String, raw_path: String, - raw_query_string: String, + raw_query_string: Option, cookies: Option>, headers: HashMap, //#[serde(borrow)] diff --git a/src/rocket05.rs b/src/rocket05.rs index 92e6fd1..04df39c 100644 --- a/src/rocket05.rs +++ b/src/rocket05.rs @@ -38,9 +38,10 @@ use std::sync::Arc; pub async fn launch_rocket_on_lambda( r: rocket::Rocket

, ) -> Result<(), LambdaError> { - lambda_runtime::run(RocketHandler(Arc::new( + let handler: RocketHandler = RocketHandler(Arc::new( rocket::local::asynchronous::Client::untracked(r).await?, - ))) + )); + lambda_runtime::run(handler) .await?; Ok(())