updated dependencies and go
This commit is contained in:
@@ -39,7 +39,7 @@ func GetMapField[TData any, TKey comparable](mapval any, key TKey) (TData, bool)
|
||||
|
||||
rval := reflect.ValueOf(mapval)
|
||||
|
||||
for rval.Kind() == reflect.Ptr && !rval.IsNil() {
|
||||
for rval.Kind() == reflect.Pointer && !rval.IsNil() {
|
||||
rval = rval.Elem()
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ func GetMapField[TData any, TKey comparable](mapval any, key TKey) (TData, bool)
|
||||
return *new(TData), false // key does not exist in mapval
|
||||
}
|
||||
|
||||
destType := reflect.TypeOf(new(TData)).Elem()
|
||||
destType := reflect.TypeFor[TData]()
|
||||
|
||||
if eval.Type() == destType {
|
||||
return eval.Interface().(TData), true
|
||||
@@ -68,11 +68,11 @@ func GetMapField[TData any, TKey comparable](mapval any, key TKey) (TData, bool)
|
||||
return eval.Convert(destType).Interface().(TData), true
|
||||
}
|
||||
|
||||
if (eval.Kind() == reflect.Ptr || eval.Kind() == reflect.Interface) && eval.IsNil() && destType.Kind() == reflect.Ptr {
|
||||
if (eval.Kind() == reflect.Pointer || eval.Kind() == reflect.Interface) && eval.IsNil() && destType.Kind() == reflect.Pointer {
|
||||
return *new(TData), false // special case: mapval[key] is nil
|
||||
}
|
||||
|
||||
for (eval.Kind() == reflect.Ptr || eval.Kind() == reflect.Interface) && !eval.IsNil() {
|
||||
for (eval.Kind() == reflect.Pointer || eval.Kind() == reflect.Interface) && !eval.IsNil() {
|
||||
eval = eval.Elem()
|
||||
|
||||
if eval.Type() == destType {
|
||||
|
||||
Reference in New Issue
Block a user