#events #notify #watch #notifications

notify-debouncer-mini

事件通知的迷你防抖器

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

Download history 38891/week @ 2024-04-20 42585/week @ 2024-04-27 37121/week @ 2024-05-04 43241/week @ 2024-05-11 44681/week @ 2024-05-18 45498/week @ 2024-05-25 51611/week @ 2024-06-01 48730/week @ 2024-06-08 50109/week @ 2024-06-15 50770/week @ 2024-06-22 46985/week @ 2024-06-29 42373/week @ 2024-07-06 37725/week @ 2024-07-13 38422/week @ 2024-07-20 38777/week @ 2024-07-27 38809/week @ 2024-08-03

每月下载量 159,959
用于 73 个 Crates (直接使用 60 个)

MIT/Apache

185KB
3K SLoC

通知防抖器

» Docs

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