auto-update-0.2.2: Efficiently run periodic, on-demand actions
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Debounce.Internal

Description

Unstable API which exposes internals for testing.

Synopsis

Documentation

data DebounceSettings Source #

Settings to control how debouncing should work.

This should be constructed using defaultDebounceSettings and record update syntax, e.g.:

let settings = defaultDebounceSettings { debounceAction = flushLog }

Since: 0.1.2

Constructors

DebounceSettings 

Fields

data DebounceEdge Source #

Setting to control whether the action happens at the leading and/or trailing edge of the timeout.

Since: 0.1.6

Constructors

Leading

Perform the action immediately, and then begin a cooldown period. If the trigger happens again during the cooldown, wait until the end of the cooldown and then perform the action again, then enter a new cooldown period.

Trailing

Start a cooldown period and perform the action when the period ends. If another trigger happens during the cooldown, it has no effect.

Instances

Instances details
Show DebounceEdge Source # 
Instance details

Defined in Control.Debounce.Internal

Eq DebounceEdge Source # 
Instance details

Defined in Control.Debounce.Internal

leadingEdge :: DebounceEdge Source #

Perform the action immediately, and then begin a cooldown period. If the trigger happens again during the cooldown, wait until the end of the cooldown and then perform the action again, then enter a new cooldown period.

Since: 0.1.6

trailingEdge :: DebounceEdge Source #

Start a cooldown period and perform the action when the period ends. If another trigger happens during the cooldown, it has no effect.

Since: 0.1.6

mkDebounceInternal :: MVar () -> (Int -> IO ()) -> DebounceSettings -> IO (IO ()) Source #