blue_archive 0.5.2

A Blue Archive api wrapper for Rust, based off of SchaleDB's data: https://github.com/lonqie/SchaleDB
Documentation
use blue_archive::Language;
use rand::Rng;

fn read_line_to_buffer(buffer: &mut String) -> Result<usize, std::io::Error> {
    std::io::stdin().read_line(buffer)
}

#[tokio::main]

async fn main() -> anyhow::Result<()> {
    let mut input_buffer = String::new();

    println!("Guessing Game (it's really bad)");
    println!("---------------------------");
    println!("See if you can guess the characters based on the remaining ones.\n\n");

    let chosen = blue_archive::fetch_random_student(Language::English)
        .await?
        .unwrap();
    let mut changed_name = chosen.name.clone();

    let index = rand::thread_rng().gen_range(0..chosen.name.len());
    changed_name.remove(index);
    changed_name.insert(index, '_');

    println!("Who is this character's name? [{changed_name}]: ");

    read_line_to_buffer(&mut input_buffer)?;

    println!("Your input: {}", input_buffer.trim());

    if input_buffer.trim().to_lowercase() == chosen.name.to_lowercase() {
        println!("Yay! You got it right!")
    } else {
        println!(
            "Aw... you got it wrong... it was actually: {}.",
            chosen.name
        )
    }

    Ok(())
}