13个版本
0.1.12 | 2023年5月18日 |
---|---|
0.1.11 | 2023年5月15日 |
0.1.5 | 2023年4月27日 |
461 在 Rust模式 中
每月下载量 585
29KB
532 行
benri
方便的宏封装标准库。
此库提供了围绕 std
功能的方便宏。
功能标志
标志 | 目的 |
---|---|
log |
在某些地方启用 log 使用 |
示例1 - 翻转布尔值
let mut a = false;
flip!(a);
assert!(a == true);
flip!(a);
assert!(a == false);
示例2 - 获取当前的 Instant
let now = now!();
std::thread::sleep(std::time::Duration::from_secs(1));
assert!(now.elapsed().as_secs() >= 1);
示例3 - 获取已过 Instant
时间
let now = now!();
std::thread::sleep(std::time::Duration::from_secs(1));
assert!(secs!(now) >= 1);
assert!(secs_f64!(now) >= 1.0);
assert!(millis!(now) >= 1000);
assert!(micros!(now) >= 10000);
assert!(nanos!(now) >= 100000);
示例4 - 睡眠线程
let now = now!();
// This sleeps the current thread for 1 second.
sleep!(1000);
assert!(secs!(now) >= 1);
示例5 - 退出 所有 线程
std::thread::spawn(|| {
mass_panic!();
}).join().unwrap();
// The program will has already exited.
// The below statement will never be reached.
unsafe { /* do bad things */ }
示例6 - 发送/接收通道消息或 mass_panic!()
这适用于任何与 std
通道具有相同方法名称的通道(如 crossbeam_channel
),因为内部宏调用 .send()
和 .recv()
。
let (tx, rx) = std::sync::mpsc::channel::<u8>();
std::thread::spawn(move || {
send!(tx, 255);
}).join().unwrap();
assert!(recv!(rx) == 255);
依赖关系
~22KB