# Functions
AppendSegmentsToFile 将多个段附加到文件 参数: - file: *os.File 文件指针 - segments: map[string][]byte 段类型和段数据的映射 - xref: *FileXref 文件交叉引用结构
返回值: - error 可能的错误.
AppendSegmentToFile 将一个段附加到文件 参数: - file: *os.File 文件指针 - segmentType: string 段类型 - data: []byte 段数据 - xref: *FileXref 文件交叉引用结构
返回值: - error 可能的错误.
DecodeTo 将字节数组解码为指定的基本类型 参数: - codec: 类型编解码器 - data: 要解码的字节数组
返回值: - T: 解码后的指定类型值 - error: 解码错误.
LoadXref 从文件加载 xref 表 参数: - file: *os.File 要读取的文件对象
返回值: - *FileXref 解析后的 xref 表 - error 可能出现的错误.
LoadXrefFromBuffer 从缓冲区加载 xref 表 参数: - reader: io.Reader 要读取的缓冲区
返回值: - *FileXref 解析后的 xref 表 - error 可能出现的错误.
LoadXrefFromFile 从文件加载 xref 表 参数: - file: *os.File 要读取的文件对象
返回值: - *FileXref 解析后的 xref 表 - error 可能出现的错误.
MustDecodeTo 是 DecodeTo 的快捷方式,解码失败时会 panic 参数: - codec: 类型编解码器 - data: 要解码的字节数组
返回值: - T: 解码后的指定类型值,如果解码失败则 panic.
NewFileXref 创建一个新的 FileXref 对象,并初始化 xref 表 返回值:*FileXref 一个新的 FileXref 对象.
NewTypeCodec 创建一个新的类型编解码器 返回值: - *TypeCodec: 类型编解码器实例.
ReadFieldFromBytes 从字节切片中读取指定的单个字段 参数: - data: []byte 输入字节切片 - fieldType: string 要读取的字段类型 - xref: *FileXref 文件交叉引用表
返回值: - []byte 读取的字段数据 - error 可能的错误.
ReadFieldsFromBytes 从字节切片中批量读取多个字段 参数: - data: []byte 输入字节切片 - fieldTypes: []string 要读取的字段类型列表 - xref: *FileXref 文件交叉引用表
返回值: - map[string]*SegmentReadResult 读取结果映射 - error 可能的错误.
ReadFileSegment 从指定文件中读取一个指定的段 参数: - file: *os.File 待读取的文件对象 - segmentType: string 要读取的段类型
返回值: - []byte 读取的段内容 - *FileXref 解析得到的 Xref 表 - error 可能出现的错误.
ReadFileSegments 从指定文件中读取一个或多个段 参数: - file: *os.File 待读取的文件对象 - segmentTypes: []string 要读取的段类型列表 - fileXref: ...*FileXref 可选参数,已解析的 Xref 表
返回值: - map[string]*SegmentReadResult 读取结果映射 - *FileXref 解析得到的 Xref 表 - error 可能出现的错误.
ReadSegmentsFromBuffer 从缓冲区中批量读取多个段 参数: - buffer: *bytes.Buffer 输入缓冲区 - segmentTypes: []string 要读取的段类型列表 - xref: *FileXref 文件交叉引用表
返回值: - map[string]*SegmentReadResult 读取结果映射 - error 可能的错误.
ReadSegmentToBuffer 从缓冲区中读取指定的单个段 参数: - buffer: *bytes.Buffer 输入缓冲区 - segmentType: string 要读取的段类型 - xref: *FileXref 文件交叉引用表
返回值: - []byte 读取的段数据 - error 可能的错误.
SaveAndClose 保存 xref 表并关闭文件 参数: - file: *os.File 要操作的文件对象 - xref: *FileXref 文件的交叉引用表
返回值:error 可能出现的错误.
WriteFileSegment 创建新文件并将数据写入 参数: - filePath: string 要创建和写入的文件路径 - data: map[string][]byte 要写入的段数据,键为段类型,值为段内容
返回值: - error 可能出现的错误.
WriteSegmentsToBuffer 批量将段写入缓冲区 参数: - buffer: *bytes.Buffer 要写入的缓冲区 - segments: map[string][]byte 要写入的段数据,键为段类型,值为段内容 - xref: *FileXref 文件的交叉引用表
返回值: - error 可能出现的错误.
WriteSegmentsToFile 批量将段写入文件 参数: - file: *os.File 要写入的文件对象 - segments: map[string][]byte 要写入的段数据,键为段类型,值为段内容 - xref: *FileXref 文件的交叉引用表
返回值: - error 可能出现的错误.
WriteSegmentToBuffer 将段写入缓冲区 参数: - buffer: *bytes.Buffer 要写入的缓冲区 - segmentType: string 段类型 - data: []byte 段的数据 - xref: *FileXref 文件的交叉引用表
返回值: - error 可能出现的错误.
WriteSegmentToFile 将段写入文件 参数: - file: *os.File 要写入的文件对象 - segmentType: string 段类型 - data: []byte 段的数据 - xref: *FileXref 文件的交叉引用表
返回值: - error 可能出现的错误.
# Constants
bool 类型,占用1字节.
[]byte 类型,变长.
complex128 类型,占用16字节.
complex64 类型,占用8字节.
float32 类型,占用4字节.
float64 类型,占用8字节.
int 类型,占用1字节.
int16 类型,占用2字节.
int32 类型,占用4字节.
int64 类型,占用8字节.
int8 类型,占用1字节.
string 类型,变长.
uint 类型,占用8字节.
uint16 类型,占用2字节.
uint32 类型,占用4字节.
uint64 类型,占用8字节.
uint8 类型,占用1字节.
# Variables
ErrInvalidData 表示输入数据太短,无法解码.
ErrInvalidLength 表示数据长度无效.
ErrTypeMismatch 表示类型不匹配错误.
ErrUnsupportedType 表示不支持的数据类型.
# Structs
FileXref 结构体用于跟踪单个文件的 xref 表和 startxref 的位置.
SegmentReadResult 用于表示单个段的读取结果.
TypeCodec 提供类型编解码功能 内部使用对象池来复用字节切片,提高性能.
XrefEntry 结构体用于保存每个段的偏移量和长度.
# Interfaces
BasicType 定义了所有支持编解码的基本类型 包括所有数值类型、字符串、布尔值和字节切片.
# Type aliases
TypeFlag 用于标识数据类型的标记.