influxdb/pkg/binaryutil/binaryutil.go

23 lines
508 B
Go

package binaryutil
// VarintSize returns the number of bytes to varint encode x.
// This code is copied from encoding/binary.PutVarint() with the buffer removed.
func VarintSize(x int64) int {
ux := uint64(x) << 1
if x < 0 {
ux = ^ux
}
return UvarintSize(ux)
}
// UvarintSize returns the number of bytes to uvarint encode x.
// This code is copied from encoding/binary.PutUvarint() with the buffer removed.
func UvarintSize(x uint64) int {
i := 0
for x >= 0x80 {
x >>= 7
i++
}
return i + 1
}