diff --git a/src/utils.rs b/src/utils.rs index 091cba2..a97e94c 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -66,6 +66,23 @@ where )) } +pub async fn callback_button( + name: &str, + callback_name: String, + callback_data: C, + db: &mut D, +) -> BotResult +where + C: Serialize + for<'a> Deserialize<'a> + Send + Sync, + D: CallDB + Send + Sync, +{ + let ci = CallbackInfo::new_with_literal(callback_data, callback_name) + .store(db) + .await?; + + Ok(InlineKeyboardButton::callback(name, ci.get_id())) +} + #[cfg(test)] mod tests { use super::*;