32 lines
780 B
Go
Raw Normal View History

2021-03-25 21:47:31 +01:00
package decoders
// MapGet retrievs a key from an expected map
// it falls back if the input is not a map
// or the key was not found.
func MapGet(m interface{}, key string, fallback interface{}) interface{} {
smap, ok := m.(map[string]interface{})
if !ok {
return fallback
}
val, ok := smap[key]
if !ok {
return fallback
}
return val
}
2021-04-15 18:31:12 +02:00
// MapGetString retrievs a key from a map and
// asserts its type is a string. Otherwise fallback
// will be returned.
2021-07-02 15:14:26 +02:00
func MapGetString(m interface{}, key string, fallback string) string {
2021-04-15 18:31:12 +02:00
val := MapGet(m, key, fallback)
return val.(string)
}
2021-07-02 15:14:26 +02:00
// MapGetBool will retrieve a boolean value
// for a given key.
func MapGetBool(m interface{}, key string, fallback bool) bool {
val := MapGet(m, key, fallback)
return val.(bool)
}