diff options
Diffstat (limited to 'src/template.rs')
| -rw-r--r-- | src/template.rs | 15 |
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, |
