9 个不稳定版本 (3 个破坏性版本)
0.4.1 | 2023 年 8 月 21 日 |
---|---|
0.4.0 | 2023 年 8 月 20 日 |
0.3.0 | 2023 年 5 月 17 日 |
0.2.1 | 2022 年 9 月 4 日 |
0.1.3 | 2022 年 8 月 17 日 |
在 文件系统 中排名 316
每月下载量 159,959
用于 73 个 Crates (直接使用 60 个)
185KB
3K SLoC
通知防抖器
为 notify 设计的小型防抖器。过滤传入的事件,并为每个文件在每个时间段内只发出一个事件。
功能
crossbeam
默认启用,以支持 crossbeam 通道。
这可能在 tokio 环境中使用时造成问题。请参阅 #380。
可以使用以下内容禁用此功能。
notify-debouncer-mini = { version = "*", default-features = false }
这也会传递到通知的 crossbeam-channel
功能中。
serde
为事件类型启用 serde 支持,默认关闭
lib.rs
:
为 notify 设计的防抖器。过滤传入的事件,并为每个文件在每个时间段内只发出一个事件。
安装
[dependencies]
notify-debouncer-mini = "0.4.1"
如果您想选择 notify 的特定功能,请在依赖项中显式指定 notify。否则,您可以直接使用 debouncer-mini 从 notify 中重导出。
notify-debouncer-mini = "0.4.1"
notify = { version = "..", features = [".."] }
示例
有关完整配置示例,请参阅此处。
use notify_debouncer_mini::{notify::*,new_debouncer,DebounceEventResult};
// Select recommended watcher for debouncer.
// Using a callback here, could also be a channel.
let mut debouncer = new_debouncer(Duration::from_secs(2), |res: DebounceEventResult| {
match res {
Ok(events) => events.iter().for_each(|e|println!("Event {:?} for {:?}",e.kind,e.path)),
Err(e) => println!("Error {:?}",e),
}
}).unwrap();
// Add a path to be watched. All files and directories at that path and
// below will be monitored for changes.
debouncer.watcher().watch(Path::new("."), RecursiveMode::Recursive).unwrap();
// note that dropping the debouncer (as will happen here) also ends the debouncer
// thus this demo would need an endless loop to keep running
功能
您可以在您的 cargo 依赖项配置中开启或关闭以下 Crates 功能
crossbeam
默认启用,添加DebounceEventHandler
对 crossbeam 通道的支持。同时也在重导出的 notify 中启用了 crossbeam-channel。如果您在使用 tokio 异步运行时,可能需要禁用此功能。serde
启用对事件的 serde 支持。
注意事项
由于所有文件事件都源自 notify,因此这里也适用已知的问题 部分。
依赖项
~0.5–11MB
~60K SLoC