From cc6cec5640fd5df66e8bf8d2cb6f4af65eb8c306 Mon Sep 17 00:00:00 2001 From: Hansoo Date: Mon, 6 Feb 2023 21:00:04 +0900 Subject: [PATCH] changed string to hashmap/record for abilities --- src-tauri/src/main.rs | 5 +++-- src-tauri/src/model.rs | 6 ++++-- src/lib/DisplayData.svelte | 4 ++-- src/model/PokemonData.ts | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index f47d275..ba1fb55 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,6 +2,7 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] +use std::collections::HashMap; use std::fs; use serde_json::json; @@ -241,7 +242,7 @@ fn search(index: i64) -> SearchResult { name: row.read::<&str, _>("name").to_string(), types: serde_json::from_str(row.read::<&str, _>("types")).unwrap_or(vec![0]), thumbnail: row.read::<&str, _>("thumbnail").to_string(), - abilities: row.read::<&str, _>("abilities").to_string(), + abilities: serde_json::from_str(row.read::<&str, _>("abilities")).unwrap_or(HashMap::new()), hp: row.read::("hp"), attack: row.read::("attack"), defense: row.read::("defense"), @@ -257,7 +258,7 @@ fn search(index: i64) -> SearchResult { name: "Missigno".to_string(), types: vec![], thumbnail: "".to_string(), - abilities: "{}".to_string(), + abilities: HashMap::new(), hp: 0, attack: 0, defense: 0, diff --git a/src-tauri/src/model.rs b/src-tauri/src/model.rs index 2f6696a..d87e437 100644 --- a/src-tauri/src/model.rs +++ b/src-tauri/src/model.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Clone)] @@ -11,7 +13,7 @@ pub struct SearchResult { pub special_attack: i64, pub special_defense: i64, pub speed: i64, - pub abilities: String, + pub abilities: HashMap, pub thumbnail: String, pub learnset: Vec, } @@ -82,7 +84,7 @@ pub struct PokemonDataToLoad { pub name: String, pub types: Vec, pub thumbnail: String, - pub abilities: String, + pub abilities: HashMap, pub hp: i64, pub attack: i64, pub defense: i64, diff --git a/src/lib/DisplayData.svelte b/src/lib/DisplayData.svelte index fd8265a..4dac690 100644 --- a/src/lib/DisplayData.svelte +++ b/src/lib/DisplayData.svelte @@ -135,8 +135,8 @@ } else if (!pokemonData.speed_plus && !!pokemonData.speed_minus) { spd_p = 0.9; } - abilities = Object.keys(JSON.parse(pokemonData.abilities)); - abilities_description = Object.values(JSON.parse(pokemonData.abilities)); + abilities = Object.keys(pokemonData.abilities); + abilities_description = Object.values(pokemonData.abilities); hp_final = calculate_hp( pokemonData.hp, pokemonData.hp_v, diff --git a/src/model/PokemonData.ts b/src/model/PokemonData.ts index 34eef25..fbf0509 100644 --- a/src/model/PokemonData.ts +++ b/src/model/PokemonData.ts @@ -3,7 +3,7 @@ export interface PokemonDBData { name: string; types: number[]; thumbnail: string; - abilities: string; + abilities: Record; hp: number; attack: number; defense: number; @@ -17,7 +17,7 @@ export interface PokemonData { name: string; types: number[]; thumbnail: string; - abilities: string; + abilities: Record; hp: number; attack: number; defense: number;