1use inquire::error::InquireResult;
2
3mod cards;
4mod data;
5mod error;
6mod prompt;
7
8pub async fn go() -> InquireResult<()> {
9 let new_banlist = data::get_banlist()
10 .await
11 .map_err(|_| std::io::Error::new(std::io::ErrorKind::InvalidData, "Invalid Banlist"))?;
12 let saved_banlist = data::load_previous_banlist();
13
14 match saved_banlist {
15 Ok(cards) => {
16 let cards = data::calculate_delta(new_banlist, cards);
17 let selected_cards = prompt::promt(cards)?;
18
19 data::open_card_db(selected_cards)?;
20
21 Ok(())
22 }
23 Err(e) => {
24 eprint!("{}", e);
25 Ok(())
26 }
27 }
28}