#![allow(clippy::print_stdout, clippy::print_stderr)]
use futures::future::join_all;
use nsip::{AnimalDetails, NsipClient};
async fn fetch_batch(
client: &NsipClient,
ids: &[&str],
batch_size: usize,
) -> Vec<Result<AnimalDetails, nsip::Error>> {
let mut results = Vec::new();
for chunk in ids.chunks(batch_size) {
let futures = chunk.iter().map(|id| client.animal_details(id));
results.extend(join_all(futures).await);
}
results
}
#[tokio::main]
async fn main() -> Result<(), nsip::Error> {
let client = NsipClient::new();
let ids = vec!["430735-0032", "430735-0041", "430735-0058"];
let results = fetch_batch(&client, &ids, 5).await;
for result in results {
match result {
Ok(animal) => println!("{}: {:?}", animal.lpn_id, animal.breed),
Err(e) => eprintln!("Error: {e}"),
}
}
Ok(())
}