1 个不稳定版本
0.1.0 | 2024年6月10日 |
---|
#16 in #位字段
17KB
332 行
easy-bitfield
一个易于使用的位字段操作包。有关示例,请参阅 examples/sample.rs
和包的文档。
lib.rs
:
easy-bitfield
一个易于使用的位字段包,允许你使用任何可想象的存储和值类型定义位字段类型(即实现 ToBitfield
和 FromBitfield
特性)。
示例
use easy_bitfield::*;
pub type X = BitField<usize, bool, 0, 1, false>;
pub type Y = BitField<usize, u16, { X::NEXT_BIT }, 16, false>;
pub type Z = BitField<usize, i32, { Y::NEXT_BIT }, 32, true>;
let storage = AtomicBitfieldContainer::new(0);
storage.update::<X>(true);
storage.update::<Y>(42);
storage.update::<Z>(-42);
assert_eq!(-42, storage.read::<Z>());
assert_eq!(42, storage.read::<Y>());
assert!(storage.read::<X>());
依赖项
~645KB
~12K SLoC