2 个版本 (1 个稳定版本)
使用旧的 Rust 2015
1.0.0 | 2019 年 4 月 8 日 |
---|---|
0.1.0 | 2019 年 2 月 16 日 |
#1373 在 算法 中
180KB
4K SLoC
BitCursor
跟踪内存缓冲区中的位位置,并提供读取、写入和查找实现。还提供了一些特质,用于读取任何大小的原始类型、无符号或带符号整数 ReadBits 和 ForceReadBits。
示例
从 u8 的列表中读取 u16,首先从位位置 0 读取,然后从位位置 2 + 游标位置 1 读取。
use {BitCursor, Readbits};
let data: [u8; 4] = [0b01101010, 0b11110001, 0b01110100, 0b10100001];
let mut bcurs = BitCursor::new(&data[..]);
let r = bcurs.read_bits::<u16>().unwrap();
assert_eq!(0b0110101011110001 as u16, r);
let _ = bcurs.seek(SeekFrom::Start(10));
let r = bcurs.read_bits::<u16>().unwrap();
assert_eq!(0b1100010111010010 as u16, r);
要查看更多示例,请参阅测试模块。