Compare commits

...

1 Commits
v1.0.0 ... main

Author SHA1 Message Date
8bf777428a better handling for pointer in AutoMap 2025-08-07 22:21:52 +02:00

9
api.go
View File

@ -3,6 +3,7 @@ package structmapper
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"reflect"
di "git.apihub24.de/admin/generic-di" di "git.apihub24.de/admin/generic-di"
"git.apihub24.de/admin/structmapper/utils" "git.apihub24.de/admin/structmapper/utils"
@ -52,10 +53,14 @@ func SliceMap[TFrom any, TTo any](from []TFrom) []TTo {
func AutoMap[TFrom any, TTo any](from TFrom) (TTo, error) { func AutoMap[TFrom any, TTo any](from TFrom) (TTo, error) {
var result TTo var result TTo
resultValue := reflect.ValueOf(&result).Elem()
if resultValue.Kind() == reflect.Ptr {
resultValue.Set(reflect.New(resultValue.Type().Elem()))
}
str, err := json.Marshal(from) str, err := json.Marshal(from)
if err != nil { if err != nil {
return result, err return result, err
} }
_ = json.Unmarshal(str, &result) err = json.Unmarshal(str, resultValue.Addr().Interface())
return result, nil return result, err
} }