diff --git a/v2/context_helper.go b/v2/context_helper.go index e0c1217..332829e 100644 --- a/v2/context_helper.go +++ b/v2/context_helper.go @@ -1,5 +1,7 @@ package serverevents +import "encoding/json" + func CreateMetaDataFilter[T any](c IContext, metaDataSelector func(IContext) T, vgl func(a T, b T) bool) func(context IContext) bool { return func(context IContext) bool { metaA := metaDataSelector(c) @@ -15,9 +17,13 @@ func MetadataAs[T any](context IContext, key string) (T, bool) { func ValueAs[T any](data any) (T, bool) { var v T - if data == nil { + str, err := json.Marshal(data) + if err != nil { return v, false } - res, ok := data.(T) - return res, ok + err = json.Unmarshal(str, &v) + if err != nil { + return v, false + } + return v, true }