|
@@ -282,7 +282,7 @@ func (s Map) StringVal(key, defaultVal string) string {
|
|
|
|
|
|
// Slce returns slice of interface{} by key
|
|
|
// If key isn't defined or have a different type will be returned defaultVal arg value
|
|
|
-func (s Map) Slice(key string, defaultVal []interface{}) (res []interface{}) {
|
|
|
+func (s Map) Slice(key string, defaultVal []any) (res []interface{}) {
|
|
|
if arr, check := s[key].([]interface{}); check {
|
|
|
res = arr
|
|
|
} else {
|
|
@@ -351,7 +351,7 @@ func (s Map) LogPretty() {
|
|
|
}
|
|
|
|
|
|
// ToMap returns map[string]interface{} of the self object
|
|
|
-func (s Map) ToMap() map[string]interface{} { return map[string]interface{}(s) }
|
|
|
+func (s Map) ToMap() map[string]any { return map[string]any(s) }
|
|
|
|
|
|
// Copy returns copied map (todo dipcopy)
|
|
|
func (s Map) Copy() (res Map) {
|
|
@@ -372,12 +372,12 @@ func (s Map) Update(m Map) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (s Map) StorePtr(key string, val interface{}) interface{} {
|
|
|
+func (s Map) StorePtr(key string, val any) interface{} {
|
|
|
s[key] = &val
|
|
|
return &val
|
|
|
}
|
|
|
|
|
|
-func (s Map) Variable(key string, ptr interface{}) bool {
|
|
|
+func (s Map) Variable(key string, ptr any) bool {
|
|
|
val, check := s[key]
|
|
|
if !check {
|
|
|
// value is not exists
|
|
@@ -397,3 +397,11 @@ func (s Map) Variable(key string, ptr interface{}) bool {
|
|
|
vElem.Set(rVal.Convert(vElem.Type()))
|
|
|
return true
|
|
|
}
|
|
|
+
|
|
|
+func (s Map) UnmarshalField(key string, ptr any) error {
|
|
|
+ val, check := s[key]
|
|
|
+ if !check {
|
|
|
+ return fmt.Errorf("unexpected field [%s]", key)
|
|
|
+ }
|
|
|
+ return FillFromJM(ptr, val)
|
|
|
+}
|