diff --git a/go/fory/type_resolver.go b/go/fory/type_resolver.go index bd49a03e15..3363508edb 100644 --- a/go/fory/type_resolver.go +++ b/go/fory/type_resolver.go @@ -248,6 +248,9 @@ func newTypeResolver(fory *Fory) *TypeResolver { for _, t := range []reflect.Type{ boolType, byteType, + uint16Type, + uint32Type, + uint64Type, int8Type, int16Type, int32Type, @@ -1704,6 +1707,12 @@ func (r *TypeResolver) createSerializer(type_ reflect.Type, mapInStruct bool) (s case reflect.Uint8: // []byte uses byteSliceSerializer return byteSliceSerializer{}, nil + case reflect.Uint16: + return uint16SliceSerializer{}, nil + case reflect.Uint32: + return uint32SliceSerializer{}, nil + case reflect.Uint64: + return uint64SliceSerializer{}, nil case reflect.String: return stringSliceSerializer{}, nil } diff --git a/go/fory/type_test.go b/go/fory/type_test.go index bbb890be57..952a3882c9 100644 --- a/go/fory/type_test.go +++ b/go/fory/type_test.go @@ -43,6 +43,9 @@ func TestTypeResolver(t *testing.T) { "[]map[string][]map[string]*interface {}"}, {reflect.TypeOf((*A)(nil)), "*@example.A"}, {reflect.TypeOf((*A)(nil)).Elem(), "@example.A"}, + {reflect.TypeOf([]uint16{}), "[]uint16"}, + {reflect.TypeOf([]uint32{}), "[]uint32"}, + {reflect.TypeOf([]uint64{}), "[]uint64"}, {reflect.TypeOf((*[]map[string]int)(nil)), "*[]map[string]int"}, {reflect.TypeOf((*[]map[A]int)(nil)), "*[]map[@example.A]int"}, {reflect.TypeOf((*[]map[string]*A)(nil)), "*[]map[string]*@example.A"},