Skip to content

Commit 6549465

Browse files
committed
feat: type/maputil: add MapStringAny.MustValueString()
1 parent 782ed0a commit 6549465

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

type/maputil/map_string_any.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"sort"
77

88
"github.com/grokify/mogo/sort/sortutil"
9+
"github.com/grokify/mogo/strconv/strconvutil"
910
"golang.org/x/exp/constraints"
1011
"golang.org/x/exp/slices"
1112
)
@@ -15,26 +16,26 @@ var (
1516
ErrNotString = errors.New("value not string")
1617
)
1718

18-
// MapStrAny represents a `map[string]any`
19-
type MapStrAny map[string]any
19+
// MapStringAny represents a `map[string]any`
20+
type MapStringAny map[string]any
2021

21-
func (msa MapStrAny) ValueString(k string, errOnNotExist bool) (string, error) {
22-
v, ok := msa[k]
23-
if !ok {
24-
if errOnNotExist {
25-
return "", ErrKeyNotExist
26-
} else {
27-
return "", nil
28-
}
22+
func (msa MapStringAny) MustValueString(k string, def string) string {
23+
if v, err := msa.ValueString(k); err != nil {
24+
return def
25+
} else {
26+
return v
2927
}
30-
s, ok := v.(string)
31-
if !ok {
32-
return "", ErrNotString
28+
}
29+
30+
func (msa MapStringAny) ValueString(k string) (string, error) {
31+
if v, ok := msa[k]; !ok {
32+
return "", ErrKeyNotExist
33+
} else {
34+
return strconvutil.AnyToString(v), nil
3335
}
34-
return s, nil
3536
}
3637

37-
func (msa MapStrAny) MustMarshal() []byte {
38+
func (msa MapStringAny) MustMarshal() []byte {
3839
if b, err := json.Marshal(msa); err != nil {
3940
panic(err)
4041
} else {

0 commit comments

Comments
 (0)