diff options
| author | troido <troido@protonmail.com> | 2020-04-06 10:37:53 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-06 10:37:53 +0200 |
| commit | e8d3e3c4f69fc5bab2b32b16b7c8c2c4a8a89a4b (patch) | |
| tree | 67986bb0c0af1abe61dc9846d1a6c8c9b8e2c4b0 /src/savestate.rs | |
| parent | ff457701ff56072914acb8a7160cd02c2a07095a (diff) | |
made parseerrors their own thing
Diffstat (limited to 'src/savestate.rs')
| -rw-r--r-- | src/savestate.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/savestate.rs b/src/savestate.rs index 2992531..4482fca 100644 --- a/src/savestate.rs +++ b/src/savestate.rs @@ -5,7 +5,9 @@ use crate::{ Pos, Template, Result, - aerr + aerr, + PResult, + perr }; pub struct SaveState { @@ -29,12 +31,12 @@ impl SaveState { }) } - pub fn from_json(val: &Value) -> Result<Self> { + pub fn from_json(val: &Value) -> PResult<Self> { let mut changes = HashMap::new(); - for v in val.get("changes").ok_or(aerr!("save does not have changes"))?.as_array().ok_or(aerr!("changes not an array"))? { - let pos = Pos::from_json(v.get(0).ok_or(aerr!("change does not have index 0"))?).ok_or(aerr!("change index 0 is not a pos"))?; + for v in val.get("changes").ok_or(perr!("save does not have changes"))?.as_array().ok_or(perr!("changes not an array"))? { + let pos = Pos::from_json(v.get(0).ok_or(perr!("change does not have index 0"))?).ok_or(perr!("change index 0 is not a pos"))?; let mut templates = Vec::new(); - for t in v.get(1).ok_or(aerr!("change does not have index 1"))?.as_array().ok_or(aerr!("change index 1 not an array"))? { + for t in v.get(1).ok_or(perr!("change does not have index 1"))?.as_array().ok_or(perr!("change index 1 not an array"))? { templates.push(Template::from_json(t)?); } changes.insert(pos, templates); |
