better ValueAs

This commit is contained in:
admin 2025-07-09 23:44:57 +02:00
parent a5f7a8c2ae
commit f27890e55e

View File

@ -1,5 +1,7 @@
package serverevents 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 { 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 { return func(context IContext) bool {
metaA := metaDataSelector(c) 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) { func ValueAs[T any](data any) (T, bool) {
var v T var v T
if data == nil { str, err := json.Marshal(data)
if err != nil {
return v, false return v, false
} }
res, ok := data.(T) err = json.Unmarshal(str, &v)
return res, ok if err != nil {
return v, false
}
return v, true
} }