From 09306cb76c6e1eabb4082a985a0a0fa335bda5c1 Mon Sep 17 00:00:00 2001 From: troido Date: Fri, 25 Sep 2020 08:54:20 +0200 Subject: proper serialisation for playerstate; strum for old-style enums --- src/components/interactable.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/components/interactable.rs') diff --git a/src/components/interactable.rs b/src/components/interactable.rs index 651437c..8141416 100644 --- a/src/components/interactable.rs +++ b/src/components/interactable.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; +use std::str::FromStr; use specs::{ Component, HashMapStorage, @@ -30,9 +31,9 @@ impl Interactable { pub fn parse_from_parameter(typ: &str, arg: &Parameter) -> Option { Some(match (typ, arg) { - ("trigger", Parameter::String(s)) => Trigger(Trigger::from_str(s)?), + ("trigger", Parameter::String(s)) => Trigger(Trigger::from_str(s).ok()?), ("visit", Parameter::String(s)) => Visit(RoomId(s.clone())), - ("mine", Parameter::String(s)) => Mine(Stat::from_str(s)?), + ("mine", Parameter::String(s)) => Mine(Stat::from_str(s).ok()?), ("say", Parameter::String(s)) => Say(s.clone()), ("reply", Parameter::String(s)) => Reply(s.clone()), ("exchange", p) => { -- cgit