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,
})
}