Documentation
¶
Index ¶
- Constants
- Variables
- func BenchmarkingValueRatio[T gtypes.Unsigned](value T) float64
- func BenchmarkingValueSliceRatio[T gtypes.Unsigned](valueSlice []T) float64
- func Decode[T gtypes.Unsigned](bytes []byte) T
- func DecodeChannel[T gtypes.Unsigned](varintBytesChannel <-chan byte, outputChannel chan<- T)
- func DecodeSlice[T gtypes.Unsigned](bytes []byte) []T
- func Encode[T gtypes.Unsigned](value T) []byte
- func EncodeChannel[T gtypes.Unsigned](valueChannel <-chan T, outputByteChannel chan<- byte)
- func EncodeSlice[T gtypes.Unsigned](valueSlice []T) []byte
- type VarInt
- func (x *VarInt) Add(v VarInt) VarInt
- func (x *VarInt) Divide(v VarInt) VarInt
- func (x *VarInt) Equals(v VarInt) bool
- func (x *VarInt) GreatThan(v VarInt) bool
- func (x *VarInt) GreatThanOrEquals(v VarInt) bool
- func (x *VarInt) LessThan(v VarInt) bool
- func (x *VarInt) LessThanOrEqual(v VarInt) bool
- func (x *VarInt) Multi(v VarInt) VarInt
- func (x *VarInt) Sub(v VarInt) VarInt
- func (x *VarInt) ToUint() uint
- func (x *VarInt) ToUint64() uint64
Constants ¶
View Source
const ( // VarIntEndByteHighestBitValue 对varint字节数组而言,如果某个字节的最高位的值是0表示这是当前数字variant编码字节数组的最后一个字节 VarIntEndByteHighestBitValue = 0x0 // VarIntNotEndByteHighestBitValue 对varint字节数组而言,如果某个字节的最高位的值是1表示这不是当前数字varint编码字节数组的最后一个字节,后面至少还有一个字节 VarIntNotEndByteHighestBitValue = 0x1 )
View Source
const ByteHighestBit = 0x80
ByteHighestBit 获取byte的最高位
Variables ¶
View Source
var ZeroVarIntBytes = []byte{VarIntNotEndByteHighestBitValue << 7}
0对应的varint编码
Functions ¶
func BenchmarkingValueRatio ¶
func BenchmarkingValueRatio[T gtypes.Unsigned](value T) float64
BenchmarkingValueRatio 计算单个值的压缩率
func BenchmarkingValueSliceRatio ¶
func BenchmarkingValueSliceRatio[T gtypes.Unsigned](valueSlice []T) float64
BenchmarkingValueSliceRatio 计算整个切片的压缩率
func DecodeChannel ¶
func DecodeChannel[T gtypes.Unsigned](varintBytesChannel <-chan byte, outputChannel chan<- T)
DecodeChannel 通过channel流式解码
func DecodeSlice ¶
func DecodeSlice[T gtypes.Unsigned](bytes []byte) []T
DecodeSlice 当多个无符号整数放在同一个字节切片中时,可以调用这个方法解码
func Encode ¶
func Encode[T gtypes.Unsigned](value T) []byte
Encode 对无符号类型进行编码,注意,如果被编码的数字位数较小可能会越编码越大
func EncodeChannel ¶
func EncodeChannel[T gtypes.Unsigned](valueChannel <-chan T, outputByteChannel chan<- byte)
EncodeChannel 从无符号整数channel中读取数据,varint编码之后发送到字节channel
func EncodeSlice ¶
func EncodeSlice[T gtypes.Unsigned](valueSlice []T) []byte
EncodeSlice 对无符号切片编码,切片中的无符号数字会被挨个存储在返回的字节切片中
Types ¶
type VarInt ¶
type VarInt []byte
VarInt 用于表示一个可变长无符号整数
func (*VarInt) GreatThanOrEquals ¶
func (*VarInt) LessThanOrEqual ¶
Click to show internal directories.
Click to hide internal directories.