diff options
Diffstat (limited to 'vendor/github.com/stretchr/objx/type_specific_codegen.go')
-rw-r--r-- | vendor/github.com/stretchr/objx/type_specific_codegen.go | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/vendor/github.com/stretchr/objx/type_specific_codegen.go b/vendor/github.com/stretchr/objx/type_specific_codegen.go index 202a91f8c..de4240955 100644 --- a/vendor/github.com/stretchr/objx/type_specific_codegen.go +++ b/vendor/github.com/stretchr/objx/type_specific_codegen.go @@ -276,13 +276,28 @@ func (v *Value) MustObjxMap() Map { // ObjxMapSlice gets the value as a [](Map), returns the optionalDefault // value or nil if the value is not a [](Map). func (v *Value) ObjxMapSlice(optionalDefault ...[](Map)) [](Map) { - if s, ok := v.data.([](Map)); ok { + if s, ok := v.data.([]Map); ok { return s } - if len(optionalDefault) == 1 { - return optionalDefault[0] + s, ok := v.data.([]interface{}) + if !ok { + if len(optionalDefault) == 1 { + return optionalDefault[0] + } else { + return nil + } } - return nil + + result := make([]Map, len(s)) + for i := range s { + switch s[i].(type) { + case Map: + result[i] = s[i].(Map) + default: + return nil + } + } + return result } // MustObjxMapSlice gets the value as a [](Map). |