serialization

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ByteToStringUnsafe

func ByteToStringUnsafe(b []byte) string

ByteToStringUnsafe 使用零拷贝将字节切片转换为字符串 警告:返回的字符串与输入字节切片共享底层存储,修改字节切片会导致字符串内容变化! 仅在临时转换且确保不会修改原始字节切片时使用

func StringToByteUnsafe

func StringToByteUnsafe(s string) []byte

StringToByteUnsafe 使用零拷贝将字符串转换为字节切片 警告:返回的字节切片与输入字符串共享底层存储,不可修改!

Types

type ChunkedReader

type ChunkedReader struct {
	// contains filtered or unexported fields
}

ChunkedReader 实现了块读取,适用于大型消息处理

func NewChunkedReader

func NewChunkedReader(reader io.Reader, bufferSize int) *ChunkedReader

NewChunkedReader 创建一个新的块读取器

func (*ChunkedReader) ReadAll

func (r *ChunkedReader) ReadAll() ([]byte, error)

ReadAll 读取所有可用数据

func (*ChunkedReader) ReadNext

func (r *ChunkedReader) ReadNext() ([]byte, error)

ReadNext 读取下一个块

type OptimizedProtoPool

type OptimizedProtoPool struct {
	// contains filtered or unexported fields
}

OptimizedProtoPool 是针对频繁使用的protobuf类型进行优化的对象池

func NewOptimizedProtoPool

func NewOptimizedProtoPool() *OptimizedProtoPool

NewOptimizedProtoPool 创建一个新的优化protobuf池

func (*OptimizedProtoPool) Get

func (p *OptimizedProtoPool) Get(protoMsg proto.Message) proto.Message

Get 从池中获取一个特定类型的protobuf对象

func (*OptimizedProtoPool) RegisterType

func (p *OptimizedProtoPool) RegisterType(protoMsg proto.Message)

RegisterType 注册一个protobuf类型到池中

type VarIntWriter

type VarIntWriter struct {
	// contains filtered or unexported fields
}

VarIntWriter 优化变长整数写入

func NewVarIntWriter

func NewVarIntWriter() *VarIntWriter

NewVarIntWriter 创建一个新的变长整数写入器

func (*VarIntWriter) Bytes

func (w *VarIntWriter) Bytes() []byte

Bytes 返回编码后的字节

func (*VarIntWriter) Release

func (w *VarIntWriter) Release()

Release 释放资源

func (*VarIntWriter) WriteVarint

func (w *VarIntWriter) WriteVarint(value uint64)

WriteVarint 写入变长整数

type ZeroCopyReader

type ZeroCopyReader struct {
	// contains filtered or unexported fields
}

ZeroCopyReader 实现了零拷贝读取

func NewZeroCopyReader

func NewZeroCopyReader(data []byte) *ZeroCopyReader

NewZeroCopyReader 创建一个新的零拷贝读取器

func (*ZeroCopyReader) ReadProto

func (r *ZeroCopyReader) ReadProto(msg proto.Message) error

ReadProto 使用零拷贝技术读取proto消息

func (*ZeroCopyReader) Skip

func (r *ZeroCopyReader) Skip(n int)

Skip 跳过指定字节数

type ZeroCopyWriter

type ZeroCopyWriter struct {
	// contains filtered or unexported fields
}

ZeroCopyWriter 实现了零拷贝写入,避免不必要的内存分配

func NewZeroCopyWriter

func NewZeroCopyWriter() *ZeroCopyWriter

NewZeroCopyWriter 创建一个新的零拷贝写入器

func (*ZeroCopyWriter) Bytes

func (w *ZeroCopyWriter) Bytes() []byte

Bytes 返回底层字节数组

func (*ZeroCopyWriter) Release

func (w *ZeroCopyWriter) Release()

Release 释放缓冲区回池

func (*ZeroCopyWriter) Reset

func (w *ZeroCopyWriter) Reset()

Reset 重置缓冲区

func (*ZeroCopyWriter) WriteProto

func (w *ZeroCopyWriter) WriteProto(msg proto.Message) error

WriteProto 使用零拷贝技术将proto消息写入

func (*ZeroCopyWriter) WriteTo

func (w *ZeroCopyWriter) WriteTo(writer io.Writer) (int64, error)

WriteTo 将缓冲区内容写入io.Writer

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL