#macro #counting #compile-time #generate

counting-macros

有状态的数值递增宏

2个不稳定版本

0.2.0 2023年4月2日
0.1.0 2022年5月17日

#1858进程宏

Download history 33/week @ 2024-03-11 30/week @ 2024-03-18 15/week @ 2024-03-25 68/week @ 2024-04-01 98/week @ 2024-04-08 28/week @ 2024-04-15 23/week @ 2024-04-22 40/week @ 2024-04-29 38/week @ 2024-05-06 10/week @ 2024-05-13 39/week @ 2024-05-20 19/week @ 2024-05-27 102/week @ 2024-06-03 55/week @ 2024-06-10 45/week @ 2024-06-17 21/week @ 2024-06-24

每月225 次下载

MIT/Apache

8KB
80

计数宏

此库添加了获取编译时计数器的宏。它使用进程宏在宏调用之间实现状态。

这里有几个可能有用的地方。例如,如果你正在定义一系列需要为每个变量递增的常量变量。当然,在这种情况下,直接在运行时构建这些值或使用某种类型的构建脚本可能更有意义。

示例

use counting_macros::*;

counter_create!(counter);
let nums = [counter_incr!(counter), counter_incr!(counter),
    counter_incr!(counter)];
assert_eq!(nums, [0, 1, 2]);

counter_set!(counter, -5);
let nums = [counter_incr!(counter), counter_peek!(counter),
    counter_incr!(counter)];
assert_eq!(nums, [-5, -4, -4]);

counter_next!(counter);
assert_eq!(counter_peek!(counter), -2);

警告

我不确定这的稳定性和安全性,所以不建议在重要项目中使用它。

此外,目前除了unwraps之外没有错误处理。


许可

许可协议为Apache License, Version 2.0或MIT许可证,由您选择。
除非您明确声明,否则您有意提交以包含在此crate中并由您定义的贡献,根据Apache-2.0许可证,应如上所述双重许可,而无需任何额外的条款或条件。

依赖关系

~280–730KB
~17K SLoC