Now forming MessageIds only from &Message to reduce the amount of moving this large type

This commit is contained in:
StNicolay 2023-07-16 17:28:40 +03:00
parent e25460a3d8
commit 1225adefc2
Signed by: StNicolay
GPG Key ID: 9693D04DCD962B0D
13 changed files with 26 additions and 27 deletions

View File

@ -43,7 +43,7 @@ async fn get_password(
move |bot, msg, db, dialogue, master_pass| { move |bot, msg, db, dialogue, master_pass| {
get_master_pass(bot, msg, db, dialogue, account, master_pass) get_master_pass(bot, msg, db, dialogue, account, master_pass)
}, },
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())
@ -64,7 +64,7 @@ async fn get_login(
move |bot, msg, db, dialogue, password| { move |bot, msg, db, dialogue, password| {
get_password(bot, msg, db, dialogue, name, login, password) get_password(bot, msg, db, dialogue, name, login, password)
}, },
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())
@ -82,7 +82,7 @@ async fn get_account_name(
dialogue dialogue
.update(State::GetLogin(Handler::new( .update(State::GetLogin(Handler::new(
move |bot, msg, db, dialogue, login| get_login(bot, msg, db, dialogue, name, login), move |bot, msg, db, dialogue, login| get_login(bot, msg, db, dialogue, name, login),
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())
@ -96,7 +96,7 @@ pub async fn add_account(
) -> crate::Result<()> { ) -> crate::Result<()> {
let previous = bot.send_message(msg.chat.id, "Send account name").await?; let previous = bot.send_message(msg.chat.id, "Send account name").await?;
dialogue dialogue
.update(State::GetNewName(Handler::new(get_account_name, previous))) .update(State::GetNewName(Handler::new(get_account_name, &previous)))
.await?; .await?;
Ok(()) Ok(())
} }

View File

@ -32,7 +32,7 @@ async fn get_account_name(
dialogue dialogue
.update(State::GetMasterPass(Handler::new( .update(State::GetMasterPass(Handler::new(
move |bot, msg, db, dialogue, _| get_master_pass(bot, msg, db, dialogue, name), move |bot, msg, db, dialogue, _| get_master_pass(bot, msg, db, dialogue, name),
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())
@ -60,7 +60,7 @@ pub async fn delete(
dialogue dialogue
.update(State::GetExistingName(Handler::new( .update(State::GetExistingName(Handler::new(
get_account_name, get_account_name,
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())

View File

@ -40,7 +40,7 @@ pub async fn delete_all(
dialogue dialogue
.update(State::GetMasterPass(Handler::new( .update(State::GetMasterPass(Handler::new(
get_master_pass, get_master_pass,
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())

View File

@ -61,7 +61,7 @@ pub async fn export(bot: Throttle<Bot>, msg: Message, dialogue: MainDialogue) ->
dialogue dialogue
.update(State::GetMasterPass(Handler::new( .update(State::GetMasterPass(Handler::new(
get_master_pass, get_master_pass,
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())

View File

@ -47,7 +47,7 @@ async fn get_account_name(
move |bot, msg, db, dialogue, master_pass| { move |bot, msg, db, dialogue, master_pass| {
get_master_pass(bot, msg, db, dialogue, name, master_pass) get_master_pass(bot, msg, db, dialogue, name, master_pass)
}, },
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())
@ -75,7 +75,7 @@ pub async fn get_account(
dialogue dialogue
.update(State::GetExistingName(Handler::new( .update(State::GetExistingName(Handler::new(
get_account_name, get_account_name,
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())

View File

@ -79,7 +79,7 @@ async fn get_document(
move |bot, msg, db, dialogue, master_pass| { move |bot, msg, db, dialogue, master_pass| {
get_master_pass(bot, msg, db, dialogue, master_pass, user) get_master_pass(bot, msg, db, dialogue, master_pass, user)
}, },
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())
@ -94,7 +94,7 @@ pub async fn import(bot: Throttle<Bot>, msg: Message, dialogue: MainDialogue) ->
) )
.await?; .await?;
dialogue dialogue
.update(State::GetUser(Handler::new(get_document, previous))) .update(State::GetUser(Handler::new(get_document, &previous)))
.await?; .await?;
Ok(()) Ok(())
} }

View File

@ -42,7 +42,7 @@ pub async fn set_master_pass(
dialogue dialogue
.update(State::GetNewMasterPass(Handler::new( .update(State::GetNewMasterPass(Handler::new(
get_master_pass, get_master_pass,
previous, &previous,
))) )))
.await?; .await?;
Ok(()) Ok(())

View File

@ -4,7 +4,7 @@ pub(crate) use crate::{
markups::*, markups::*,
models::*, models::*,
state::State, state::State,
state::{Handler, MainDialogue, PackagedHandler}, state::{Handler, MainDialogue, MessageIds, PackagedHandler},
utils::*, utils::*,
}; };
pub(crate) use cryptography::prelude::*; pub(crate) use cryptography::prelude::*;

View File

@ -32,7 +32,7 @@ where
Some(text) => text.trim(), Some(text) => text.trim(),
None => { None => {
let msg = bot.send_message(msg.chat.id, no_text_message).await?; let msg = bot.send_message(msg.chat.id, no_text_message).await?;
handler.previous = msg.into(); handler.previous = MessageIds::from(&msg);
return Ok(()); return Ok(());
} }
}; };
@ -46,7 +46,7 @@ where
} }
if let Some(failure_message) = check(&bot, &msg, &db, text).await? { if let Some(failure_message) = check(&bot, &msg, &db, text).await? {
handler.previous = failure_message.into(); handler.previous = MessageIds::from(&failure_message);
return Ok(()); return Ok(());
} }

View File

@ -47,7 +47,7 @@ pub async fn get_existing_name(
) )
.reply_markup(account_markup(user_id, &db).await?) .reply_markup(account_markup(user_id, &db).await?)
.await?; .await?;
handler.previous = msg.into(); handler.previous = MessageIds::from(&msg);
return Ok(()); return Ok(());
} }
}; };
@ -61,7 +61,7 @@ pub async fn get_existing_name(
} }
if let Some(failure_message) = check_name(&bot, &msg, &db, text, user_id).await? { if let Some(failure_message) = check_name(&bot, &msg, &db, text, user_id).await? {
handler.previous = failure_message.into(); handler.previous = MessageIds::from(&failure_message);
return Ok(()); return Ok(());
} }

View File

@ -137,7 +137,7 @@ pub async fn get_user(
let msg = bot let msg = bot
.send_message(msg.chat.id, "You didn't send a file. Try again") .send_message(msg.chat.id, "You didn't send a file. Try again")
.await?; .await?;
handler.previous = msg.into(); handler.previous = MessageIds::from(&msg);
return Ok(()); return Ok(());
} }
}; };
@ -151,7 +151,7 @@ pub async fn get_user(
"Invalid file name. You need to send a json file. Try again", "Invalid file name. You need to send a json file. Try again",
) )
.await?; .await?;
handler.previous = msg.into(); handler.previous = MessageIds::from(&msg);
return Ok(()); return Ok(());
} }
} }
@ -170,14 +170,14 @@ pub async fn get_user(
Ok(Ok(user)) => user, Ok(Ok(user)) => user,
Ok(Err(error_text)) => { Ok(Err(error_text)) => {
let msg = bot.send_message(msg.chat.id, error_text).await?; let msg = bot.send_message(msg.chat.id, error_text).await?;
handler.previous = msg.into(); handler.previous = MessageIds::from(&msg);
return Ok(()); return Ok(());
} }
Err(_) => { Err(_) => {
let msg = bot let msg = bot
.send_message(msg.chat.id, "Error parsing the json file. Try again") .send_message(msg.chat.id, "Error parsing the json file. Try again")
.await?; .await?;
handler.previous = msg.into(); handler.previous = MessageIds::from(&msg);
return Ok(()); return Ok(());
} }
}; };

View File

@ -1,6 +1,6 @@
use crate::prelude::*; use crate::prelude::*;
use futures::future::BoxFuture; use futures::future::BoxFuture;
use std::{borrow::Borrow, future::Future, sync::Arc}; use std::{future::Future, sync::Arc};
use teloxide::types::MessageId; use teloxide::types::MessageId;
use tokio::sync::Mutex; use tokio::sync::Mutex;
@ -14,10 +14,9 @@ impl MessageIds {
} }
} }
impl<T: Borrow<Message>> From<T> for MessageIds { impl From<&Message> for MessageIds {
#[inline] #[inline]
fn from(value: T) -> Self { fn from(value: &Message) -> Self {
let value: &Message = value.borrow();
Self(value.chat.id, value.id) Self(value.chat.id, value.id)
} }
} }

View File

@ -17,7 +17,7 @@ pub use get_new_master_pass::get_new_master_pass;
pub use get_new_name::get_new_name; pub use get_new_name::get_new_name;
pub use get_password::get_password; pub use get_password::get_password;
pub use get_user::get_user; pub use get_user::get_user;
pub use handler::{Handler, PackagedHandler}; pub use handler::{Handler, MessageIds, PackagedHandler};
use crate::prelude::*; use crate::prelude::*;
use teloxide::dispatching::dialogue::InMemStorage; use teloxide::dispatching::dialogue::InMemStorage;