2个版本
0.0.2 | 2022年1月24日 |
---|---|
0.0.1 | 2022年1月20日 |
#1902 in 编码
13KB
307 行
bitorder
一个用于以lsb或msb顺序读取和写入位的库。在byteorder的基础上构建,但针对位。目标是简单且快速。
文档
lib.rs
:
一个用于以Lsb或Msb顺序读取和写入位的小型库。
示例
use bitorder::container::{BitReader, BitWriter};
use bitorder::{Msb0, BitOrder};
let mut data = vec![0u8; 2];
let mut b = BitWriter::<Msb0>::new(&mut data);
b.write_bits(1, 1u8);
b.write_bits(2, 2u8);
b.write_bits(3, 3u8);
b.write_bits(4, 4u8);
b.write_bits(5, 5u8);
assert_eq!(&data, b"\xCD\x0A"); // http://mjfrazer.org/mjfrazer/bitfields/
let mut b = BitReader::<Msb0>::new(&data);
assert_eq!(b.read_bits::<u8>(1), 1u8);
assert_eq!(b.read_bits::<u8>(2), 2u8);
assert_eq!(b.read_bits::<u8>(3), 3u8);
assert_eq!(b.read_bits::<u8>(4), 4u8);
assert_eq!(b.read_bits::<u8>(5), 5u8);