1#![allow(clippy::missing_errors_doc)]
13
14pub mod ignore;
15pub mod notify_watcher;
16pub mod polling_watcher;
17#[cfg(feature = "python")]
18mod python;
19pub mod recovery;
20pub mod settle;
21
22use zccache_core::NormalizedPath;
23
24pub use ignore::IgnoreFilter;
25pub use notify_watcher::NotifyWatcher;
26pub use polling_watcher::{
27 PollWatchBatch, PollWatchObserver, PollingWatcher, PollingWatcherConfig,
28};
29pub use recovery::OverflowRecovery;
30pub use settle::{SettleBuffer, SettledEvent};
31
32#[derive(Debug, Clone)]
34pub enum WatchEvent {
35 Modified(NormalizedPath),
37 Created(NormalizedPath),
39 Removed(NormalizedPath),
41 Renamed {
43 from: NormalizedPath,
44 to: NormalizedPath,
45 },
46 Overflow,
49 Error(String),
51}
52
53#[derive(Debug, Clone)]
55pub struct WatcherConfig {
56 pub settle_window_ms: u64,
58 pub ignore_patterns: Vec<String>,
60}
61
62impl Default for WatcherConfig {
63 fn default() -> Self {
64 Self {
65 settle_window_ms: 50,
66 ignore_patterns: IgnoreFilter::default_patterns(),
67 }
68 }
69}