// use crate::trello::types::board::TrelloBoard; use crate::trello::types::TrelloBoardName; use crate::{p, FullCtx}; pub(crate) async fn list(ctx: FullCtx, dump: bool) -> color_eyre::Result<()> { let api_result = super::api::members::get_boards_that_member_belongs_to(&ctx.cfg.trello, &ctx.net, &ctx.prt) .await; if dump { p!(ctx.prt, "{}", api_result.text); } else { let mut boards = api_result.result?; boards.sort_by(|a, b| a.name.cmp(&b.name)); boards.into_iter().for_each(|board| { p!(ctx.prt, "{}:{}", board.id, board.name); }); } Ok(()) } pub trait TrelloBoards { fn find_by_name(&self, board_name: &TrelloBoardName) -> Option<&TrelloBoard>; } impl TrelloBoards for Vec { fn find_by_name(&self, board_name: &TrelloBoardName) -> Option<&TrelloBoard> { self.iter().find(|b| &b.name == board_name) } }