1 个不稳定版本
| 0.1.1 | 2022 年 10 月 4 日 |
|---|
#1495 在 算法 中
每月 21 次下载
5KB
randotron
我编写这个库是因为我找不到一种简单的方法来随机执行 Rust 代码。虽然这可能不是经常需要做的事情,但在您只想平均每百次执行一次代码时(如指标记录)很有用。
目前 randotron(我实在想不出更好的名字),需要一个采样率和一个闭包
randotron(100, || { println!("I get printed only 1% of the time!") });
采样率是期望速率的倒数。例如,100 表示 1/100,即平均每百次执行一次。 675 表示代码平均每六百七十五次执行一次。许多库将此值表示为 float,例如,1% 表示为 0.01 而不是 100。在 randotron 中,我们使用 u64 而不是 f64,以使事情更简单。
评估结果
如果闭包被选中执行,randotron 将评估为 Some(result)(其中 result 是闭包独立执行时的结果)。否则,randotron 将评估为 None。
方便的采样率
您可以设置采样率为 1,这将始终成功,实际上确保闭包每次都会运行。类似地,尽管通常的速率 0 会引起除以零错误,但在此情况下,它保证闭包永远不会执行,并且始终返回 None。
依赖项
~0.6–1.1MB
~24K SLoC