summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/stretchr/objx/map.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/stretchr/objx/map.go')
-rw-r--r--vendor/github.com/stretchr/objx/map.go54
1 files changed, 11 insertions, 43 deletions
diff --git a/vendor/github.com/stretchr/objx/map.go b/vendor/github.com/stretchr/objx/map.go
index eb6ed8e28..406bc8926 100644
--- a/vendor/github.com/stretchr/objx/map.go
+++ b/vendor/github.com/stretchr/objx/map.go
@@ -27,7 +27,7 @@ func (m Map) Value() *Value {
}
// Nil represents a nil Map.
-var Nil Map = New(nil)
+var Nil = New(nil)
// New creates a new Map containing the map[string]interface{} in the data argument.
// If the data argument is not a map[string]interface, New attempts to call the
@@ -47,9 +47,8 @@ func New(data interface{}) Map {
//
// The arguments follow a key, value pattern.
//
-// Panics
//
-// Panics if any key arugment is non-string or if there are an odd number of arguments.
+// Returns nil if any key argument is non-string or if there are an odd number of arguments.
//
// Example
//
@@ -58,32 +57,25 @@ func New(data interface{}) Map {
// m := objx.MSI("name", "Mat", "age", 29, "subobj", objx.MSI("active", true))
//
// // creates an Map equivalent to
-// m := objx.New(map[string]interface{}{"name": "Mat", "age": 29, "subobj": map[string]interface{}{"active": true}})
+// m := objx.Map{"name": "Mat", "age": 29, "subobj": objx.Map{"active": true}}
func MSI(keyAndValuePairs ...interface{}) Map {
-
- newMap := make(map[string]interface{})
+ newMap := Map{}
keyAndValuePairsLen := len(keyAndValuePairs)
-
if keyAndValuePairsLen%2 != 0 {
- panic("objx: MSI must have an even number of arguments following the 'key, value' pattern.")
+ return nil
}
-
for i := 0; i < keyAndValuePairsLen; i = i + 2 {
-
key := keyAndValuePairs[i]
value := keyAndValuePairs[i+1]
// make sure the key is a string
keyString, keyStringOK := key.(string)
if !keyStringOK {
- panic("objx: MSI must follow 'string, interface{}' pattern. " + keyString + " is not a valid key.")
+ return nil
}
-
newMap[keyString] = value
-
}
-
- return New(newMap)
+ return newMap
}
// ****** Conversion Constructors
@@ -94,11 +86,9 @@ func MSI(keyAndValuePairs ...interface{}) Map {
// Panics if the JSON is invalid.
func MustFromJSON(jsonString string) Map {
o, err := FromJSON(jsonString)
-
if err != nil {
panic("objx: MustFromJSON failed with error: " + err.Error())
}
-
return o
}
@@ -107,16 +97,12 @@ func MustFromJSON(jsonString string) Map {
//
// Returns an error if the JSON is invalid.
func FromJSON(jsonString string) (Map, error) {
-
var data interface{}
err := json.Unmarshal([]byte(jsonString), &data)
-
if err != nil {
return Nil, err
}
-
return New(data), nil
-
}
// FromBase64 creates a new Obj containing the data specified
@@ -124,14 +110,11 @@ func FromJSON(jsonString string) (Map, error) {
//
// The string is an encoded JSON string returned by Base64
func FromBase64(base64String string) (Map, error) {
-
decoder := base64.NewDecoder(base64.StdEncoding, strings.NewReader(base64String))
-
decoded, err := ioutil.ReadAll(decoder)
if err != nil {
return nil, err
}
-
return FromJSON(string(decoded))
}
@@ -140,13 +123,10 @@ func FromBase64(base64String string) (Map, error) {
//
// The string is an encoded JSON string returned by Base64
func MustFromBase64(base64String string) Map {
-
result, err := FromBase64(base64String)
-
if err != nil {
panic("objx: MustFromBase64 failed with error: " + err.Error())
}
-
return result
}
@@ -157,14 +137,13 @@ func MustFromBase64(base64String string) Map {
func FromSignedBase64(base64String, key string) (Map, error) {
parts := strings.Split(base64String, SignatureSeparator)
if len(parts) != 2 {
- return nil, errors.New("objx: Signed base64 string is malformed.")
+ return nil, errors.New("objx: Signed base64 string is malformed")
}
sig := HashWithKey(parts[0], key)
if parts[1] != sig {
- return nil, errors.New("objx: Signature for base64 data does not match.")
+ return nil, errors.New("objx: Signature for base64 data does not match")
}
-
return FromBase64(parts[0])
}
@@ -173,13 +152,10 @@ func FromSignedBase64(base64String, key string) (Map, error) {
//
// The string is an encoded JSON string returned by Base64
func MustFromSignedBase64(base64String, key string) Map {
-
result, err := FromSignedBase64(base64String, key)
-
if err != nil {
panic("objx: MustFromSignedBase64 failed with error: " + err.Error())
}
-
return result
}
@@ -188,19 +164,15 @@ func MustFromSignedBase64(base64String, key string) Map {
//
// For queries with multiple values, the first value is selected.
func FromURLQuery(query string) (Map, error) {
-
vals, err := url.ParseQuery(query)
-
if err != nil {
return nil, err
}
-
- m := make(map[string]interface{})
+ m := Map{}
for k, vals := range vals {
m[k] = vals[0]
}
-
- return New(m), nil
+ return m, nil
}
// MustFromURLQuery generates a new Obj by parsing the specified
@@ -210,13 +182,9 @@ func FromURLQuery(query string) (Map, error) {
//
// Panics if it encounters an error
func MustFromURLQuery(query string) Map {
-
o, err := FromURLQuery(query)
-
if err != nil {
panic("objx: MustFromURLQuery failed with error: " + err.Error())
}
-
return o
-
}