2 个不稳定版本
新版本 0.2.0 | 2024 年 8 月 17 日 |
---|---|
0.1.0 | 2022 年 12 月 4 日 |
#144 在 异步
5,192 每月下载量
在 i3status-rs 中使用
14KB
177 行
Debounced
构建延迟 Future
和防抖 Stream
的实用工具,这些工具在给出持续时间后才返回最新项。
用法
此 crate 实现的功能相当简单。根据您是想延迟单个 future,还是防抖整个 stream,您应该使用 delayed
或 debounced
。
延迟单个值
如果您想延迟单个 future 的解析到一个已知值,您可以使用 delayed
。
use debounced::delayed;
let delayed = delayed(42, Duration::from_secs(1)).await;
assert_eq!(start.elapsed().as_secs(), 1);
assert_eq!(delayed, 42);
防抖流
如果您想防抖整个 stream,您可以使用 debounced
。
use debounced::debounced;
let (mut sender, receiver) = futures_channel::mpsc::channel(1024);
let mut debounced = debounced(receiver, Duration::from_secs(1));
sender.send(21).await;
sender.send(42).await;
assert_eq!(debounced.next().await, Some(42));
assert_eq!(start.elapsed().as_secs(), 1);
限制
- 前置防抖。 此库当前仅实现后置防抖。它不实现前置防抖。
许可证
版权所有 2022 Glacyr B.V.
特此授予任何获得此软件及其相关文档副本(“软件”)的人,免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许软件的受让人行使上述权利,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是由于合同、侵权或其他方式引起的,无论是由于软件或软件的使用或其它方式。
依赖关系
~0.6–1MB
~19K SLoC