From 667f8b64fbc22219b0c7e13326932776ce549bf6 Mon Sep 17 00:00:00 2001 From: StNicolay Date: Sat, 15 Jul 2023 00:07:59 +0300 Subject: [PATCH] Moved handler.func.is_none check to the top --- src/state/generic.rs | 10 +++++----- src/state/get_existing_name.rs | 11 ++++++----- src/state/get_user.rs | 11 ++++++----- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/state/generic.rs b/src/state/generic.rs index 987c551..1a7a15c 100644 --- a/src/state/generic.rs +++ b/src/state/generic.rs @@ -21,6 +21,11 @@ where ) -> BoxFuture<'a, crate::Result>>, { let mut handler = next.lock().await; + if handler.func.is_none() { + let _ = dialogue.exit().await; + return Err(HandlerUsed.into()); + } + delete_optional(&bot, handler.previous.as_ref()).await; let text = match msg.text() { @@ -40,11 +45,6 @@ where return Ok(()); } - if handler.func.is_none() { - let _ = dialogue.exit().await; - return Err(HandlerUsed.into()); - } - if let Some(failure_message) = check(&bot, &msg, &db, text).await? { handler.previous = Some(failure_message); return Ok(()); diff --git a/src/state/get_existing_name.rs b/src/state/get_existing_name.rs index 3492192..0276fa3 100644 --- a/src/state/get_existing_name.rs +++ b/src/state/get_existing_name.rs @@ -28,7 +28,13 @@ pub async fn get_existing_name( next: PackagedHandler, ) -> crate::Result<()> { let user_id = msg.from().ok_or(NoUserInfo)?.id.0; + let mut handler = next.lock().await; + if handler.func.is_none() { + let _ = dialogue.exit().await; + return Err(HandlerUsed.into()); + } + delete_optional(&bot, handler.previous.as_ref()).await; let text = match msg.text() { @@ -54,11 +60,6 @@ pub async fn get_existing_name( return Ok(()); } - if handler.func.is_none() { - let _ = dialogue.exit().await; - return Err(HandlerUsed.into()); - } - if let Some(failure_message) = check_name(&bot, &msg, &db, text, user_id).await? { handler.previous = Some(failure_message); return Ok(()); diff --git a/src/state/get_user.rs b/src/state/get_user.rs index d4400e4..1ed1dab 100644 --- a/src/state/get_user.rs +++ b/src/state/get_user.rs @@ -114,7 +114,13 @@ pub async fn get_user( next: PackagedHandler, ) -> crate::Result<()> { let user_id = msg.from().ok_or(NoUserInfo)?.id.0; + let mut handler = next.lock().await; + if handler.func.is_none() { + let _ = dialogue.exit().await; + return Err(HandlerUsed.into()); + } + delete_optional(&bot, handler.previous.as_ref()).await; if let Some("/cancel") = msg.text().map(str::trim) { @@ -125,11 +131,6 @@ pub async fn get_user( return Ok(()); } - if handler.func.is_none() { - let _ = dialogue.exit().await; - return Err(HandlerUsed.into()); - } - let document = match msg.document() { Some(document) => document, None => {