1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018年7月17日 |
---|
#1676 在 Rust 模式
458 每月下载量
用于 6 个crate(直接使用2个)
5KB
53 行
simple-counter
通过创建一个新的模块并使用线程局部静态 Cell
,提供了一个生成线程局部全局计数的宏。目前主要用于整数类型。适用于基本的 ID 生成。
用法
将以下依赖项添加到您的 Cargo.toml 文件中
[dependencies]
simple-counter = "0.1.0"
并在导入时使用 #[macro_use]
注解
#[macro_use]
extern crate simple_counter;
generate_counter!(Counter, usize);
fn main() {
// Starts at 0 by default
assert_eq!(Counter::next(), 0);
assert_eq!(Counter::next(), 1);
assert_eq!(Counter::next(), 2);
// Can be set to arbitrary value
Counter::set(1000);
assert_eq!(Counter::next(), 1000);
assert_eq!(Counter::next(), 1001);
assert_eq!(Counter::next(), 1002);
// Or reset to 0
Counter::reset();
assert_eq!(Counter::next(), 0);
}
示例
这是一个用于编译器的简单唯一临时生成器
#[macro_use]
extern crate simple_counter;
generate_counter!(TempID, usize);
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Temp {
id: usize,
name: String,
}
impl Temp {
pub fn from_str(name: &'static str) -> Self {
Temp {
id: TempID::next(),
name: name.to_string(),
}
}
}