1个不稳定版本
0.1.0 | 2023年4月6日 |
---|
1415 在 过程宏 中排名
74 每月下载量
3KB
minus-one
let max_byte: u8 = minus_one!(256);
assert_eq!(max_byte, 255);
let min_byte: u8 = minus_one!(1);
assert_eq!(min_byte, 0);
在固件领域,您可能会使用一个寄存器,其中寄存器的0值对应于1的值。这在硬件中是一个常见的模式。然而,当您尝试向寄存器写入值时,您必须记住从您想要写入的值中减去1。此外,有时甚至不可能减去1,因为您想要写入的值是最大值。
假设您有一个 u8
,并且您想要写入表示标量256的值。您不能从256中减去1,因为255是u8
的最大值。 minus_one!
宏允许您编写 minus_one!(256)
并得到 255
,同样 minus_one!(1)
将返回 0
。
依赖项
~295–750KB
~18K SLoC