diff --git a/src/main.rs b/src/main.rs index 6b49096..085eef9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -368,8 +368,7 @@ async fn login_callback( let referrer_openid = return_to .as_ref() .map(|return_to| format!("/login/callback/{}", Encoded(return_to.as_str()))) - .map(|callback| SteamOpenId::new(&app.url, &callback).ok()) - .flatten(); + .and_then(|callback| SteamOpenId::new(&app.url, &callback).ok()); let openid = referrer_openid.as_ref().unwrap_or(&app.openid); let query = query.as_deref().unwrap_or_default(); @@ -393,8 +392,7 @@ async fn login_callback( let return_to = return_to .as_ref() .map(|Path(return_to)| return_to) - .map(|return_to| HeaderValue::from_str(&return_to).ok()) - .flatten() + .and_then(|return_to| HeaderValue::from_str(return_to).ok()) .unwrap_or(HeaderValue::from_static("/")); Ok(( @@ -421,14 +419,12 @@ async fn login( ) -> impl IntoResponse { let referrer = referrer .map(|TypedHeader(referrer)| referrer.to_string()) - .map(|referrer| Url::parse(&referrer).ok()) - .flatten(); + .and_then(|referrer| Url::parse(&referrer).ok()); let referrer_openid = referrer .as_ref() .map(|referrer| format!("/login/callback/{}", Encoded(referrer.path()))) - .map(|callback| SteamOpenId::new(&app.url, &callback).ok()) - .flatten(); + .and_then(|callback| SteamOpenId::new(&app.url, &callback).ok()); let openid = referrer_openid.as_ref().unwrap_or(&app.openid); ( StatusCode::FOUND, @@ -449,8 +445,7 @@ async fn logout( ) -> impl IntoResponse { let referrer = referrer .map(|TypedHeader(referrer)| referrer.to_string()) - .map(|referrer| Url::parse(&referrer).ok()) - .flatten(); + .and_then(|referrer| Url::parse(&referrer).ok()); let return_to = referrer.as_ref().map(|url| url.path()).unwrap_or("/"); if let Some(session_cookie) = cookie.as_deref().and_then(|cookie| cookie.get(COOKIE_NAME)) {