Restore backwards compatibility in StableMarshal() #60

Merged
fyrchik merged 1 commit from fyrchik/frostfs-api-go:fix-marshaling into support/v2.16 2024-09-04 19:51:16 +00:00

View file

@ -15,7 +15,7 @@ import (
)
type (
stableMarshaller interface {
stableMarshaler interface {
StableMarshal([]byte) []byte
StableSize() int
}
@ -250,7 +250,7 @@ func VarUIntSize(x uint64) int {
}
type ptrStableMarshaler[T any] interface {
stableMarshaller
stableMarshaler
~*T
}
@ -262,7 +262,7 @@ func NestedStructureMarshal[T any, M ptrStableMarshaler[T]](field int64, buf []b
return NestedStructureMarshalUnchecked(field, buf, v)
}
func NestedStructureMarshalUnchecked[T stableMarshaller](field int64, buf []byte, v T) int {
func NestedStructureMarshalUnchecked[T stableMarshaler](field int64, buf []byte, v T) int {
n := v.StableSize()
prefix := protowire.EncodeTag(protowire.Number(field), protowire.BytesType)
offset := binary.PutUvarint(buf, prefix)
@ -280,7 +280,7 @@ func NestedStructureSize[T any, M ptrStableMarshaler[T]](field int64, v M) (size
return NestedStructureSizeUnchecked(field, v)
}
func NestedStructureSizeUnchecked[T stableMarshaller](field int64, v T) int {
func NestedStructureSizeUnchecked[T stableMarshaler](field int64, v T) int {
n := v.StableSize()
return protowire.SizeGroup(protowire.Number(field), protowire.SizeBytes(n))
}