any-type #20

Merged
sashakoshka merged 18 commits from any-type into main 2025-10-12 11:03:57 -06:00
Showing only changes of commit 785b48085d - Show all commits

View File

@ -46,6 +46,8 @@ func EncodeAny(encoder *Encoder, value any, tag Tag) (n int, err error) {
case reflect.Uint32: return encoder.WriteUint32(uint32(reflectValue.Uint())) case reflect.Uint32: return encoder.WriteUint32(uint32(reflectValue.Uint()))
case reflect.Int64: return encoder.WriteInt64(int64(reflectValue.Int())) case reflect.Int64: return encoder.WriteInt64(int64(reflectValue.Int()))
case reflect.Uint64: return encoder.WriteUint64(uint64(reflectValue.Uint())) case reflect.Uint64: return encoder.WriteUint64(uint64(reflectValue.Uint()))
case reflect.Float32: return encoder.WriteFloat32(float32(reflectValue.Float()))
case reflect.Float64: return encoder.WriteFloat64(float64(reflectValue.Float()))
case reflect.String: case reflect.String:
if reflectValue.Len() > MaxStructureLength { if reflectValue.Len() > MaxStructureLength {
return 0, ErrTooLong return 0, ErrTooLong
@ -254,6 +256,8 @@ func tagAny(reflectValue reflect.Value) (Tag, error) {
case reflect.Uint16: return LI.WithCN(1), nil case reflect.Uint16: return LI.WithCN(1), nil
case reflect.Uint32: return LI.WithCN(3), nil case reflect.Uint32: return LI.WithCN(3), nil
case reflect.Uint64: return LI.WithCN(7), nil case reflect.Uint64: return LI.WithCN(7), nil
case reflect.Float32: return FP.WithCN(3), nil
case reflect.Float64: return FP.WithCN(7), nil
case reflect.String: return bufferLenTag(reflectValue.Len()), nil case reflect.String: return bufferLenTag(reflectValue.Len()), nil
} }
if reflectValue.CanConvert(reflect.TypeOf(dummyBuffer)) { if reflectValue.CanConvert(reflect.TypeOf(dummyBuffer)) {