|
|
|
@ -41,6 +41,7 @@ func EncodeAny(encoder *Encoder, value any, tag Tag) (n int, err error) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
nn, err := encoder.Write(value)
|
|
|
|
nn, err := encoder.Write(value)
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
n += nn; if err != nil { return n, err }
|
|
|
|
|
|
|
|
return n, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// aggregates
|
|
|
|
// aggregates
|
|
|
|
@ -184,7 +185,7 @@ func TagAny(value any) (Tag, error) {
|
|
|
|
// aggregates
|
|
|
|
// aggregates
|
|
|
|
reflectType := reflect.TypeOf(value)
|
|
|
|
reflectType := reflect.TypeOf(value)
|
|
|
|
switch reflectType.Kind() {
|
|
|
|
switch reflectType.Kind() {
|
|
|
|
case reflect.Slice: return OTA.WithCN(reflect.ValueOf(value).Len() - 1), nil
|
|
|
|
case reflect.Slice: return OTA.WithCN(IntBytes(uint64(reflect.ValueOf(value).Len())) - 1), nil
|
|
|
|
case reflect.Array: return OTA.WithCN(reflectType.Len()), nil
|
|
|
|
case reflect.Array: return OTA.WithCN(reflectType.Len()), nil
|
|
|
|
case reflect.Map:
|
|
|
|
case reflect.Map:
|
|
|
|
if reflectType.Key() == reflect.TypeOf(uint16(0)) {
|
|
|
|
if reflectType.Key() == reflect.TypeOf(uint16(0)) {
|
|
|