use lastfm_client::{LastFmClient, LimitBuilder};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotenv::dotenv().ok();
println!("Validating required environment variables...");
match lastfm_client::config::validate_env_vars() {
Ok(()) => println!("✓ All required environment variables are set"),
Err(e) => {
eprintln!("✗ Configuration error: {e}");
std::process::exit(1);
}
}
let username = "tom_planche";
match LastFmClient::new() {
Ok(client) => {
println!("✓ LastFmClient created successfully for user: {username}");
println!("Client is ready to make API calls!");
match client.recent_tracks(username).limit(5).fetch().await {
Ok(tracks) => {
println!("\nFetched {} recent tracks:", tracks.len());
for (i, track) in tracks.iter().enumerate() {
println!(" {}. {} - {}", i + 1, track.name, track.artist.text);
}
}
Err(e) => {
eprintln!("Error fetching tracks: {e}");
}
}
}
Err(e) => {
eprintln!("✗ Failed to create client: {e}");
return Err(e.into());
}
}
Ok(())
}