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