use crate::handlers::markups::deletion_markup; use teloxide::{adaptors::Throttle, dispatching::DpHandlerDescription, prelude::*}; /// Deletes the message from the callback async fn run(bot: Throttle, q: CallbackQuery) -> crate::Result<()> { if let Some(msg) = q.message { if let Err(err) = bot.delete_message(msg.chat.id, msg.id).await { let _ = bot .send_message(msg.chat.id, "Error deleting the message") .reply_markup(deletion_markup()) .await; return Err(err.into()); } } Ok(()) } /// Filters the delete_message callbacks fn filter(q: CallbackQuery) -> bool { matches!(q.data.as_deref(), Some("delete_message")) } /// Gets a handler for deleting the message #[inline] pub fn get_handler() -> Handler<'static, DependencyMap, crate::Result<()>, DpHandlerDescription> { dptree::filter(filter).endpoint(run) }