summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-07 20:31:15 +0100
committertroido <troido@protonmail.com>2020-02-07 20:31:15 +0100
commit8675ea5ad1b9bd5ea727c0c8cd6eaf485ca28c05 (patch)
tree623ba81520cb0475a7a90d154819444710871e9a
parentfa81f03509aa1300613c62e3a7b32db1183cd5c8 (diff)
argument can be left out
-rw-r--r--src/assemblage.rs4
-rw-r--r--src/main.rs2
2 files changed, 2 insertions, 4 deletions
diff --git a/src/assemblage.rs b/src/assemblage.rs
index 28bf26f..879cd3e 100644
--- a/src/assemblage.rs
+++ b/src/assemblage.rs
@@ -1,6 +1,6 @@
use std::collections::HashMap;
-use serde_json::Value;
+use serde_json::{Value, json};
use super::componentparameter::ComponentParameter;
use super::parameter::{Parameter, ParameterType};
use super::componentwrapper::{ComponentWrapper, ComponentType};
@@ -62,7 +62,7 @@ impl Assemblage {
pub fn from_json(val: &Value) -> Result<Self, &'static str>{
let assemblage = Self {
- arguments: Self::parse_definition_arguments(val.get("arguments").ok_or("property 'arguments' not found")?)?,
+ arguments: Self::parse_definition_arguments(val.get("arguments").unwrap_or(&json!([])))?,
components: Self::parse_definition_components(val.get("components").ok_or("property 'components' not found")?)?
};
assemblage.validate()?;
diff --git a/src/main.rs b/src/main.rs
index 66c6fcc..77b6ca2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -110,7 +110,6 @@ fn gen_room<'a, 'b>() -> Room<'a, 'b> {
fn default_assemblages() -> Encyclopedia {
Encyclopedia::from_json(json!({
"wall": {
- "arguments": [],
"components": [
["Blocking", {}],
["Visible", {
@@ -120,7 +119,6 @@ fn default_assemblages() -> Encyclopedia {
]
},
"grass": {
- "arguments": [],
"components": [
["Visible", {
"sprite": ["random", [