13个版本

0.1.12 2023年5月18日
0.1.11 2023年5月15日
0.1.5 2023年4月27日

461Rust模式

Download history 15/week @ 2024-03-13 30/week @ 2024-03-20 46/week @ 2024-03-27 33/week @ 2024-04-03 22/week @ 2024-04-10 19/week @ 2024-04-17 40/week @ 2024-04-24 18/week @ 2024-05-01 11/week @ 2024-05-08 15/week @ 2024-05-15 20/week @ 2024-05-22 56/week @ 2024-05-29 132/week @ 2024-06-05 149/week @ 2024-06-12 32/week @ 2024-06-19 226/week @ 2024-06-26

每月下载量 585

MIT 许可证

29KB
532

benri

Windows macOS Linux crates.io docs.rs

方便的宏封装标准库。

此库提供了围绕 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