pub struct DebouncePolicy { /* private fields */ }Expand description
Policy for debouncing IP change events.
Debouncing merges changes that occur within a time window, avoiding rapid consecutive triggers (flapping) from causing duplicate notifications.
§Merge Semantics
| Scenario | Event Sequence in Window | Output | Reason |
|---|---|---|---|
| Flicker | Added(IP) → Removed(IP) | Empty | Same IP add/remove cancel out |
| Reverse Flicker | Removed(IP) → Added(IP) | Empty | Same IP remove/add cancel out |
| Replacement | Removed(old) → Added(new) | Both events | Different IPs, independent |
| Duplicate Add | Added(IP) → Added(IP) | One Added | Idempotent merge |
§Implementation
At window end, compute net change for each (adapter, address):
- Net > 0: Output
Added - Net < 0: Output
Removed - Net = 0: No output (cancelled out)
Implementations§
Trait Implementations§
Source§impl Clone for DebouncePolicy
impl Clone for DebouncePolicy
Source§fn clone(&self) -> DebouncePolicy
fn clone(&self) -> DebouncePolicy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DebouncePolicy
impl Debug for DebouncePolicy
Source§impl Default for DebouncePolicy
impl Default for DebouncePolicy
Source§impl PartialEq for DebouncePolicy
impl PartialEq for DebouncePolicy
impl Eq for DebouncePolicy
impl StructuralPartialEq for DebouncePolicy
Auto Trait Implementations§
impl Freeze for DebouncePolicy
impl RefUnwindSafe for DebouncePolicy
impl Send for DebouncePolicy
impl Sync for DebouncePolicy
impl Unpin for DebouncePolicy
impl UnwindSafe for DebouncePolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.