#byte-slice #bit #bits #bitstream #byte-buffer #data-stream #byte-stream

no-std bitreader

BitReader 帮助从字节切片中读取单个位。您可以从字节切片中读取“不寻常”数量的位,例如一次性读取13位。读取器内部跟踪缓冲区中的位置。

11 个版本

使用旧 Rust 2015

0.3.8 2023年9月5日
0.3.7 2023年4月26日
0.3.6 2022年4月3日
0.3.5 2022年1月6日
0.1.0 2016年8月9日

#8 in 解析器工具

Download history 4102/week @ 2024-04-23 4836/week @ 2024-04-30 4748/week @ 2024-05-07 4438/week @ 2024-05-14 4908/week @ 2024-05-21 4406/week @ 2024-05-28 4141/week @ 2024-06-04 4151/week @ 2024-06-11 3899/week @ 2024-06-18 4438/week @ 2024-06-25 4174/week @ 2024-07-02 4893/week @ 2024-07-09 4601/week @ 2024-07-16 5286/week @ 2024-07-23 4681/week @ 2024-07-30 5637/week @ 2024-08-06

21,002 每月下载量
61 包(25 直接)中使用

MIT/Apache

32KB
508

BitReader

BitReader 是从字节切片中提取位串的辅助类型。

Published Package Documentation Build Status

以下是如何从字节缓冲区中首先读取一个位,然后读取三个位,最后读取四个位的方法

use bitreader::BitReader;

let slice_of_u8 = &[0b1000_1111];
let mut reader = BitReader::new(slice_of_u8);

// You obviously should use try! or some other error handling mechanism here
let a_single_bit = reader.read_u8(1).unwrap(); // 1
let more_bits = reader.read_u8(3).unwrap(); // 0
let last_bits_of_byte = reader.read_u8(4).unwrap(); // 0b1111

您可以从比单个字节更长的数据缓冲区中自然地读取位。

在读取位的过程中,BitReader 的内部游标沿着位流移动。读取多字节值时,假设大端格式。BitReader 支持一次最多读取 64 位(使用 read_u64)。

许可证

根据您的选择,许可在 Apache 许可证版本 2.0 或 MIT 许可证下。

依赖关系