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