8 个版本

0.3.4 2024年1月18日
0.3.3 2023年10月14日
0.3.0 2023年9月21日
0.2.1 2023年1月2日
0.1.0 2022年12月23日

#15 in #计时测量

Download history 774/week @ 2024-03-14 883/week @ 2024-03-21 847/week @ 2024-03-28 686/week @ 2024-04-04 717/week @ 2024-04-11 573/week @ 2024-04-18 653/week @ 2024-04-25 584/week @ 2024-05-02 607/week @ 2024-05-09 653/week @ 2024-05-16 574/week @ 2024-05-23 641/week @ 2024-05-30 641/week @ 2024-06-06 582/week @ 2024-06-13 511/week @ 2024-06-20 275/week @ 2024-06-27

2,098 每月下载量
7 个包中使用 (通过 fun_time)

MIT 许可证

16KB
195

fun_time

Crates.io docs.rs

fun_time 是一个简单的 Rust 库,允许你使用简单的属性轻松计时函数调用!

基本示例

#[fun_time(message = "Heavy calculations on: {a_value}")]
fn some_cool_function(a_value: String) -> usize {
    a_value.len()
}

fn main() {
    let my_value_length = some_cool_function(String::from("Hello, world."));
}

上述代码将在函数开始时打印 Starting: Hello, world:,并在完成时打印 Heavy calculations on: Hello, world: Done in <duration>

配置

有一些属性允许你配置 fun_time 属性的行为。

  • message 允许你设置一个消息,该消息将在开始时打印,并在完成时传递给 format! 宏,因此可以将在函数中的参数用于消息(前提是它们具有 DebugDisplay)。
  • when 允许你配置何时收集计时。这个值的可能值有: "always",正如其名,将始终收集计时信息,和 "debug",这将只在 cfg!(debug_assertions) 评估为 true 时收集。
  • give_back 是一个标志,使得包装的函数现在返回经过的时间而不是打印它。为此,它修改了返回类型,例如:从 -> &'a str 修改为 -> (&'a str, std::time::Duration)。这允许您处理打印或存储计时信息。
  • reporting不能与 give_back 一起使用)确定报告的方式。可能选项包括:"println",它将使用 println! 打印到标准输出。当使用 log 功能时,"log" 选项才可用。这默认使用 log crate 的 info! 级别日志,这可以受到 level 选项的影响。
  • level 设置日志消息的级别,可以是 log::Level 枚举可以解析的任何选项。

报告

报告的消息格式如下

开始消息: "开始:YOUR_MESSAGE_HERE"

完成消息: "YOUR_MESSAGE_HERE:耗时 DURATION"

依赖项

~2MB
~42K SLoC