From 83afa05fa3bc0f734eaa496a6fc39ad6427481aa Mon Sep 17 00:00:00 2001 From: fancl Date: Wed, 6 Dec 2023 17:09:47 +0800 Subject: [PATCH] add assign method --- util/reflect/reflect.go | 4 ++++ util/reflection/reflection.go | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/util/reflect/reflect.go b/util/reflect/reflect.go index 6bf6087..0670761 100644 --- a/util/reflect/reflect.go +++ b/util/reflect/reflect.go @@ -42,6 +42,10 @@ func findField(v reflect.Value, field string) reflect.Value { return v.FieldByName(field) } +func Assign(variable reflect.Value, value interface{}) (err error) { + return safeAssignment(variable, value) +} + func safeAssignment(variable reflect.Value, value interface{}) (err error) { var ( n int64 diff --git a/util/reflection/reflection.go b/util/reflection/reflection.go index a40763a..1cdc4bf 100644 --- a/util/reflection/reflection.go +++ b/util/reflection/reflection.go @@ -1,6 +1,9 @@ package reflection -import "git.nspix.com/golang/kos/util/reflect" +import ( + "git.nspix.com/golang/kos/util/reflect" + reflectpkg "reflect" +) func Setter[T string | int | int64 | float64 | any](hacky any, variables map[string]T) (err error) { for k, v := range variables { @@ -11,6 +14,10 @@ func Setter[T string | int | int64 | float64 | any](hacky any, variables map[str return } +func Assign(s reflectpkg.Value, v any) error { + return reflect.Assign(s, v) +} + func Set(hacky any, field string, value any) (err error) { return reflect.Set(hacky, field, value) }