From bcd5fab33c119407eb54aee0ad65f6416589da59 Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Tue, 27 Nov 2018 23:08:37 -0800 Subject: [PATCH] Add $properties to project nodes, unsure the full ramifications yet --- server/src/project.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/src/project.rs b/server/src/project.rs index 54ffa601..25b9e560 100644 --- a/server/src/project.rs +++ b/server/src/project.rs @@ -7,6 +7,7 @@ use std::{ }; use serde_json; +use rbx_tree::RbxValue; pub static PROJECT_FILENAME: &'static str = "roblox-project.json"; @@ -17,6 +18,9 @@ enum SourceProjectNode { #[serde(rename = "$className")] class_name: String, + #[serde(rename = "$properties", default="HashMap::new")] + properties: HashMap, + // #[serde(rename = "$ignoreUnknown", default = "false")] // ignore_unknown: bool, @@ -32,7 +36,7 @@ enum SourceProjectNode { impl SourceProjectNode { pub fn into_project_node(self, project_file_location: &Path) -> ProjectNode { match self { - SourceProjectNode::Instance { class_name, mut children } => { + SourceProjectNode::Instance { class_name, mut children, properties } => { let mut new_children = HashMap::new(); for (node_name, node) in children.drain() { @@ -42,6 +46,7 @@ impl SourceProjectNode { ProjectNode::Instance(InstanceProjectNode { class_name, children: new_children, + properties, }) }, SourceProjectNode::SyncPoint { path: source_path } => { @@ -150,7 +155,7 @@ pub enum ProjectNode { pub struct InstanceProjectNode { pub class_name: String, pub children: HashMap, - // properties: HashMap, + pub properties: HashMap, // ignore_unknown: bool, }