From 71e7762db51cfc9963944bcec172cfccd835e466 Mon Sep 17 00:00:00 2001 From: Evan Phoenix Date: Wed, 5 Nov 2014 09:23:41 -0800 Subject: [PATCH] Don't wrap native types in a tomlValue{} --- toml.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/toml.go b/toml.go index 2c43d73..2896da7 100644 --- a/toml.go +++ b/toml.go @@ -191,7 +191,21 @@ func (t *TomlTree) SetPath(keys []string, value interface{}) { subtree = node[len(node)-1] } } - subtree.values[keys[len(keys)-1]] = &tomlValue{value: value} + + var toInsert interface{} + + switch value.(type) { + case *TomlTree: + toInsert = value + case []*TomlTree: + toInsert = value + case *tomlValue: + toInsert = value + default: + toInsert = &tomlValue{value: value} + } + + subtree.values[keys[len(keys)-1]] = toInsert } // createSubTree takes a tree and a key and create the necessary intermediate