#位字段 #工具 #

无 std bitutils

位字段宏和工具

4 个稳定版本

使用旧 Rust 2015

3.0.1 2021 年 4 月 21 日
3.0.0 2018 年 10 月 28 日
2.0.1 2018 年 9 月 3 日
2.0.0 2018 年 9 月 2 日

#1948 in Rust 模式

每月 30 次下载

MIT 许可证

7KB
100

bitutils

API

bitutils 核心是一个宏,bf!

语法

bf!(BitfieldName[uXX] {
    field1: lower:upper, // e.g. field1: 0:3, which would encompass the least significant nibble
    field2: 4:6,
    field3: 7:8,
    field5: 9:9,
    // ...
});

用法

let mut bf = BitfieldName::new(0xFFFF);
bf.field1();
bf.set_field2(0x3);
bf.val &= 0xFF;
println!("{:x?}", bf);

Bitutils 还提供了 bits!bit! 宏。

let foo = bits!(0xFFFF, 0:3);
assert_eq!(0xFF, foo);

let bar = bit!(0xF, 7);
assert_eq!(1, bar);

依赖项

~2MB
~46K SLoC