use crate::utils; use crate::structs; use std::env; use std::process::exit; use tokio::task::JoinHandle; //use std::collections::BTreeMap; extern crate tokio; extern crate reqwest; pub async fn run(args: env::Args) { let sauces = utils::get_arg_sauces(args).unwrap(); let mut remaining_to_show = sauces.len(); if remaining_to_show < 1 { eprintln!("Missing sauce(s)"); exit(1); } let client = reqwest::Client::new(); let mut handles: Vec> = Vec::with_capacity(sauces.len()); for sauce in sauces { let cloned_client = client.clone(); handles.push(tokio::spawn(async move { utils::get_sauce_info(cloned_client, sauce).await.unwrap() })); } for handle in handles { println!("{}", utils::human_sauce_info(&handle.await.unwrap())); if remaining_to_show > 1 { println!(""); remaining_to_show -= 1; } } }