Skip to main content

KeyRepeatGate

Struct KeyRepeatGate 

Source
pub struct KeyRepeatGate<K: Eq + Hash + Copy> { /* private fields */ }
Expand description

The debouncer. Generic over the key type so consumers can use Action, &'static str, or any other Eq+Hash+Copy token.

Default::default() gives a gate with the 80ms DEFAULT_MIN_INTERVAL.

Implementations§

Source§

impl<K: Eq + Hash + Copy> KeyRepeatGate<K>

Source

pub fn new() -> Self

Construct with the default 80ms window.

Source

pub fn with_interval(min_interval: Duration) -> Self

Construct with a custom min-interval. Shorter = less debouncing; longer = more aggressive throttling; Duration::ZERO = pass-through.

Source

pub fn try_pass(&mut self, key: K) -> bool

Attempt to pass an event for key. Returns true if at least min_interval has elapsed since the last accepted pass (or there was no prior pass). On true, the timestamp is updated.

Returns false (and leaves the timestamp untouched) when the call lands within the window — the caller should drop the event.

Source

pub fn try_pass_at(&mut self, key: K, now: Instant) -> bool

Same as try_pass but with an explicit timestamp — for tests that don’t depend on wall-clock timing.

Source

pub fn clear(&mut self)

Reset all timestamps. Use when window focus changes or the operator explicitly clears keybind state.

Source

pub fn clear_key(&mut self, key: K)

Forget timestamps just for key. Useful when one action’s debounce state should reset without affecting others.

Source

pub fn min_interval(&self) -> Duration

Read the configured min-interval (diagnostic / introspection).

Source

pub fn set_min_interval(&mut self, interval: Duration)

Update the min-interval at runtime. Existing timestamps are preserved — the new interval applies to subsequent checks.

Trait Implementations§

Source§

impl<K: Debug + Eq + Hash + Copy> Debug for KeyRepeatGate<K>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<K: Eq + Hash + Copy> Default for KeyRepeatGate<K>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<K> Freeze for KeyRepeatGate<K>

§

impl<K> RefUnwindSafe for KeyRepeatGate<K>
where K: RefUnwindSafe,

§

impl<K> Send for KeyRepeatGate<K>
where K: Send,

§

impl<K> Sync for KeyRepeatGate<K>
where K: Sync,

§

impl<K> Unpin for KeyRepeatGate<K>
where K: Unpin,

§

impl<K> UnsafeUnpin for KeyRepeatGate<K>

§

impl<K> UnwindSafe for KeyRepeatGate<K>
where K: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more