3个版本 (破坏性更新)
0.3.0 | 2022年9月28日 |
---|---|
0.2.0 | 2022年9月27日 |
0.1.0 | 2022年9月25日 |
64 在 #once
每月下载量 21
8KB
53 行
fn_once
此库为once函数提供方便的derive宏。
fn_once = "0.3.0"
如何使用,
use fn_once::once;
#[once]
fn print_once(name: &str) {
println!("Hello! {}!", name);
}
#[once(or = { number })] // or = { block expression }
fn add_one_once(number: u32) -> u32 {
count + 1
}
#[once(panic)]
fn panic_when_twice() { }
fn main() {
print_once("World"); // print "Hello! World!"
print_once("foo"); // no effect
let mut number = 0;
number = add_one_once(number); // 0 + 1 -> 1
number = add_one_once(number); // no effect -> 1
number = add_one_once(number); // no effect -> 1
assert_eq!(number, 1);
panic_when_twice();
panic_when_twice(); // panic!
}
当您想禁用它时,
[features]
default = ["once_off"]
once_off = []
# The point is that
# just `once_off` feature is turned on.
依赖项
~1.5MB
~35K SLoC