rocalc 0.2.1

一款用于计算洛克王国:世界精灵对决的Rust库
Documentation
use csv::ReaderBuilder;
use serde::Deserialize;
use std::error::Error;
use crate::structs::*;

#[derive(Debug, Deserialize)]
struct Sprite{
    name: String,
    hp: f32,
    atk: f32,
    m_atk: f32,
    dfe: f32,
    m_dfe: f32,
    spd: f32,
}

/// 查询种族值
pub fn get_race_value(name: &str) -> Result<Six, Box<dyn Error>> {
    let content = include_str!("../../assets/sprites.csv");
    let mut rdr = ReaderBuilder::new().flexible(true).from_reader(content.as_bytes());
    
    let sprite: Sprite = rdr
        .deserialize()
        .filter_map(|result| result.ok())
        .find(|sprite: &Sprite| sprite.name == name)
        .ok_or("没有找到精灵")?;

    println!("{:#?}", sprite);

    Ok(Six {
        hp: sprite.hp,
        atk: sprite.atk,
        m_atk: sprite.m_atk,
        dfe: sprite.dfe,
        m_dfe: sprite.m_dfe,
        spd: sprite.spd,
    })
}
//