1个不稳定版本

0.1.0 2023年4月6日

1415过程宏 中排名

Download history 20/week @ 2024-03-31 1/week @ 2024-04-07

74 每月下载量

MIT 许可证

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