diff --git a/auto.go b/auto.go index 70e283e..a18a692 100644 --- a/auto.go +++ b/auto.go @@ -31,12 +31,15 @@ func AutoRoute[TSource, TDest any | []any](opts ...Option) error { } srcFld := sourceStorage.MustFind(sourcePath) - if destFld.GetType() != srcFld.GetType() { + if slices.Contains(opt.Excluded, srcFld) { continue } - if slices.Contains(opt.Excluded, srcFld) { + + if destFld.GetType() != srcFld.GetType() { + _ = Map(srcFld.Get(source), destFld.GetPtr(dest)) continue } + if err := setFieldRecursive(srcFld, destFld, source, dest); err != nil { return err }