模块

std.codec

小端整数辅助、无符号变长整数和 CRC-32 原语。

状态

当前可运行:

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)u32u16 值打包为当前写入表示。
std.codec.writeU32(value)u32u32 值打包为当前写入表示。

当前限制:

  • 基于缓冲区的写入 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"

设计说明

当前的辅助工具刻意保持狭窄范围。它们在添加分配器支持的缓冲区之前,先验证整数宽度和确定性的字节运算。