brawl-rs 0.1.0

A Rust wrapper for the Brawl Stars API
Documentation
// Example: Fetch Player Information
// To run: cargo run --example player

use brawl_rs::prelude::*;
use std::env::var;

#[tokio::main]
#[cfg(feature = "player")]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = BrawlClient::new(var("BRAWL_TOKEN")?);

    // Fetch player information
    // Note: Replace with a valid player tag
    match Player::get(&client, "20YY0G9L0").await {
        Ok(mut player) => {
            println!("=== Player Information ===");
            println!("Name: {}", player.name);
            println!("Trophies: {}", player.trophies);
            println!("Highest Trophies: {}", player.highest_trophies);
            println!("Level: {}", player.exp_level);
            println!("Prestige: {}", player.total_prestige_level);
            println!("Experience Points: {}", player.exp_points);
            println!("\n=== Victories ===");
            println!("3v3: {}", player.victories_3v3);
            println!("Solo: {}", player.solo_victories);
            println!("Duo: {}", player.duo_victories);

            if let Some(club_name) = &player.club.name {
                println!("\n=== Club ===");
                println!("Name: {}", club_name);
                println!("Tag: {}", player.club.tag.as_deref().unwrap_or("N/A"));
            }

            println!("\n=== Brawlers ({} total) ===", player.brawlers.len());
            player
                .brawlers
                .sort_by(|x, x1| x1.trophies.cmp(&x.trophies));

            for brawler in player.brawlers.iter().take(10) {
                println!(
                    "{}: Power {}, Trophies {}, Rank {}",
                    brawler.name, brawler.power, brawler.trophies, brawler.rank
                );
            }
        }
        Err(e) => eprintln!("Error fetching player: {:?}", e),
    }

    Ok(())
}