notify_types/
debouncer_mini.rs

1use std::path::PathBuf;
2
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6/// A debounced event kind.
7#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9#[non_exhaustive]
10pub enum DebouncedEventKind {
11    /// No precise events
12    Any,
13    /// Event but debounce timed out (for example continuous writes)
14    AnyContinuous,
15}
16
17/// A debounced event.
18///
19/// Does not emit any specific event type on purpose, only distinguishes between an any event and a continuous any event.
20#[derive(Clone, Debug, Eq, Hash, PartialEq)]
21#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
22pub struct DebouncedEvent {
23    /// Event path
24    pub path: PathBuf,
25    /// Event kind
26    pub kind: DebouncedEventKind,
27}
28
29impl DebouncedEvent {
30    #[inline(always)]
31    pub fn new(path: PathBuf, kind: DebouncedEventKind) -> Self {
32        Self { path, kind }
33    }
34}