From 523a635dc88bc7890a0e1d3c062a8165259761d6 Mon Sep 17 00:00:00 2001 From: troido Date: Thu, 24 Sep 2020 09:38:18 +0200 Subject: don't try to read into the json data structure all manually --- src/roomtemplate.rs | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'src/roomtemplate.rs') diff --git a/src/roomtemplate.rs b/src/roomtemplate.rs index 87c94fe..7110e64 100644 --- a/src/roomtemplate.rs +++ b/src/roomtemplate.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use serde_json::{json, Value, value}; +use serde::{Deserialize, Deserializer, de, Serialize}; use crate::{ Pos, Template, @@ -18,6 +19,52 @@ pub struct RoomTemplate { pub permissions: RoomPermissions } +#[derive(Debug, Clone, Serialize, Deserialize)] +struct RoomTemplateSave { + pub width: i64, + pub height: i64, + pub spawn: Pos, + pub field: Vec, + pub mapping: HashMap, + #[serde(default)] + pub places: HashMap, + #[serde(default)] + pub permissions: RoomPermissions +} +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(untagged)] +enum TemplateList { + Single(Template), + List(Vec