From dac89209fdde17e2e4fdf89768e814945a8cea62 Mon Sep 17 00:00:00 2001 From: troido Date: Tue, 19 May 2020 15:06:45 +0200 Subject: better json parsing using serde_json::value::from_value --- src/item.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/item.rs') diff --git a/src/item.rs b/src/item.rs index e4dbb34..0e8661a 100644 --- a/src/item.rs +++ b/src/item.rs @@ -1,20 +1,31 @@ use std::collections::HashSet; +use std::str::FromStr; +use serde; +use serde::Deserialize; use serde_json::{Value}; use crate::{ Template, components::{ Flag, equipment::Equippable - } + }, + errors::{ParseError} }; -#[derive(Debug, Default, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, Default, PartialEq, Eq, Clone, Hash, Deserialize)] pub struct ItemId(pub String); +impl FromStr for ItemId { + type Err = ParseError; + fn from_str(s: &str) -> Result { + Ok(Self(s.to_string())) + } +} + #[derive(Debug, Clone)] pub struct Item { pub ent: Template, -- cgit