Marshal now gets the map via the AllSettings method
Conflicts:
viper.go
diff --git a/viper.go b/viper.go
index d9f97c8..be41206 100644
--- a/viper.go
+++ b/viper.go
@@ -350,19 +350,8 @@
// Marshals the config into a Struct
func Marshal(rawVal interface{}) error { return v.Marshal(rawVal) }
func (v *Viper) Marshal(rawVal interface{}) error {
- err := mapstructure.Decode(v.defaults, rawVal)
- if err != nil {
- return err
- }
- err = mapstructure.Decode(v.config, rawVal)
- if err != nil {
- return err
- }
- err = mapstructure.Decode(v.override, rawVal)
- if err != nil {
- return err
- }
- err = mapstructure.Decode(v.kvstore, rawVal)
+ err := mapstructure.WeakDecode(v.AllSettings(), rawVal)
+
if err != nil {
return err
}