in cfn/encoding/unstringify.go [55:78]
func convertMap(i interface{}, t reflect.Type, pointer bool) (reflect.Value, error) {
m, ok := i.(map[string]interface{})
if !ok {
return zeroValue, fmt.Errorf("Cannot convert %T to map with string keys", i)
}
out := reflect.New(t)
out.Elem().Set(reflect.MakeMap(t))
for k, v := range m {
val, err := convertType(t.Elem(), v)
if err != nil {
return zeroValue, err
}
out.Elem().SetMapIndex(reflect.ValueOf(k), val)
}
if !pointer {
out = out.Elem()
}
return out, nil
}