summaryrefslogtreecommitdiff
path: root/src/template.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/template.rs')
-rw-r--r--src/template.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/template.rs b/src/template.rs
index 1ef6fc1..6eb27e1 100644
--- a/src/template.rs
+++ b/src/template.rs
@@ -23,6 +23,16 @@ enum TemplateSave {
save: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
clan: Option<String>
+ },
+ New{
+ #[serde(rename = ":template")]
+ name: EntityType,
+ #[serde(rename="__save__", default, skip_serializing_if = "Option::is_none")]
+ save: Option<bool>,
+ #[serde(rename="__clan__", default, skip_serializing_if = "Option::is_none")]
+ clan: Option<String>,
+ #[serde(default, flatten, skip_serializing_if = "HashMap::is_empty")]
+ kwargs: HashMap<String, Parameter>
}
}
@@ -40,7 +50,8 @@ impl From<TemplateSave> for Template {
fn from(ts: TemplateSave) -> Self {
match ts {
TemplateSave::Name(name) => Self{name, kwargs: HashMap::new(), save: None, clan: None},
- TemplateSave::Full{name, kwargs, save, clan} => Self{name, kwargs, save, clan}
+ TemplateSave::Full{name, kwargs, save, clan} => Self{name, kwargs, save, clan},
+ TemplateSave::New{name, kwargs, save, clan} => Self{name, kwargs, save, clan}
}
}
}
@@ -49,7 +60,7 @@ impl Into<TemplateSave> for Template {
if self.kwargs.is_empty() && self.save == None && self.clan == None {
return TemplateSave::Name(self.name);
}
- TemplateSave::Full {
+ TemplateSave::New {
name: self.name,
kwargs: self.kwargs,
save: self.save,