summaryrefslogtreecommitdiff
path: root/src/item.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/item.rs')
-rw-r--r--src/item.rs15
1 files changed, 13 insertions, 2 deletions
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<Self, Self::Err> {
+ Ok(Self(s.to_string()))
+ }
+}
+
#[derive(Debug, Clone)]
pub struct Item {
pub ent: Template,