earthmc 2.0.1

Async client for interacting with the EarthMC API
Documentation
use std::sync::Arc;

use earthmc::{
    client::ClientBuilder, model::query::SimpleQueryBuilder,
    retry_strategy::NeverRetry,
};
use parking_lot::Mutex;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = ClientBuilder::default()
        .retry_strategy(Arc::new(Mutex::new(NeverRetry)))
        .build();

    let query = SimpleQueryBuilder::default()
        .insert("Fix") // opted-out players are simply omitted
        .insert_many(["kokiriglade"])
        .insert("this player doesn't exist") // players that don't exist are simply omitted
        .build()?;

    let players = client.players(query).await?;

    for player in &players {
        println!(
            "{} has {} gold, is in {:?} town, and has {:?} ranks.",
            player.name, player.stats.balance, player.town, player.ranks,
        );
    }

    Ok(())
}