use crate::entity::prelude::Account; use futures::TryStreamExt; use sea_orm::prelude::*; use teloxide::types::{KeyboardButton, KeyboardMarkup}; #[inline] pub async fn account_markup( user_id: u64, db: &DatabaseConnection, ) -> crate::Result { let account_names: Vec> = Account::get_names(user_id, db, true) .await? .map_ok(|account| KeyboardButton::new(account)) .try_chunks(3) .try_collect() .await?; let markup = KeyboardMarkup::new(account_names) .resize_keyboard(true) .one_time_keyboard(true); Ok(markup) }