From 637a72e846c08bb9204bebb9e3f27a2c0c39023d Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 12 Jul 2015 15:50:49 +0100 Subject: [PATCH] Only create PluginMetadata keys when necessary. --- src/backend/metadata/plugin_metadata.h | 30 ++++++++++++++++++-------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/backend/metadata/plugin_metadata.h b/src/backend/metadata/plugin_metadata.h index 4511a843..2c227ee8 100644 --- a/src/backend/metadata/plugin_metadata.h +++ b/src/backend/metadata/plugin_metadata.h @@ -128,15 +128,27 @@ namespace YAML { static Node encode(const loot::PluginMetadata& rhs) { Node node; node["name"] = rhs.Name(); - node["enabled"] = rhs.Enabled(); - node["priority"] = rhs.Priority(); - node["after"] = rhs.LoadAfter(); - node["req"] = rhs.Reqs(); - node["inc"] = rhs.Incs(); - node["msg"] = rhs.Messages(); - node["tag"] = rhs.Tags(); - node["dirty"] = rhs.DirtyInfo(); - node["url"] = rhs.Locations(); + + if (!rhs.Enabled()) + node["enabled"] = rhs.Enabled(); + + if (rhs.IsPriorityExplicit()) + node["priority"] = rhs.Priority(); + + if (!rhs.LoadAfter().empty()) + node["after"] = rhs.LoadAfter(); + if (!rhs.Reqs().empty()) + node["req"] = rhs.Reqs(); + if (!rhs.Incs().empty()) + node["inc"] = rhs.Incs(); + if (!rhs.Messages().empty()) + node["msg"] = rhs.Messages(); + if (!rhs.Tags().empty()) + node["tag"] = rhs.Tags(); + if (!rhs.DirtyInfo().empty()) + node["dirty"] = rhs.DirtyInfo(); + if (!rhs.Locations().empty()) + node["url"] = rhs.Locations(); return node; }