状态
当前可运行:
| API | 返回值 | 说明 |
|---|---|---|
std.codec.crc32(bytes) | u32 | 对字符串支持的字节输入计算 CRC-32。 |
std.codec.crc32Bytes(bytes) | u32 | 对 span 或可变 span 计算 CRC-32,无需分配。 |
std.codec.encodedVarintLen(value) | usize | 返回无符号 varint 编码的字节长度。 |
std.codec.readU8(bytes) | u8 | 读取一个字节。 |
std.codec.readU16(bytes) | u16 | 以小端序读取两个字节。 |
std.codec.readU32(bytes) | u32 | 以小端序读取四个字节。 |
std.codec.writeU16(value) | u32 | 将 u16 值打包为当前写入表示。 |
std.codec.writeU32(value) | u32 | 将 u32 值打包为当前写入表示。 |
当前限制:
- 基于缓冲区的写入 API。
- 针对输入过短的错误产生式读取。
- 流式编码器和解码器。
示例
use std.codecuse std.mem pub fn main Void world World ! let len std.codec.encodedVarintLen 300 let checksum std.codec.crc32 "zero" let bytes std.mem.span "zero" let byte_checksum std.codec.crc32Bytes bytes if && (== len 2) (== checksum byte_checksum) check world.out.write "codec primitives ok\n"设计说明
当前的辅助工具刻意保持狭窄范围。它们在添加分配器支持的缓冲区之前,先验证整数宽度和确定性的字节运算。