pub struct DebouncedInput<Switch: InputSwitch, Config: DebouncedInputConfig> { /* private fields */ }
Expand description
Concrete implementation of debounced input.
§Type Params
Switch
- InputSwitch
that provides input for debouncing.
Config
- DebouncedInputConfig
that provides configs for debouncing.
§Example
ⓘ
debounced_input_config!(
SomeDebouncedInputConfig,
debounce_timer: MyElapsedTimer = MyElapsedTimer::new(20.millis())
);
type MyDebouncedInput<Switch> = DebouncedInput<Switch, SomeDebouncedInputConfig>;
let mut debounced_input = MyDebouncedInput::new(pin.into_active_low_switch());
loop {
match debounced_input.update().unwrap() {
DebouncedInputEvent::Low => do_something_when_low(),
DebouncedInputEvent::High => do_something_when_high(),
DebouncedInputEvent::Rise => do_something_upon_rise(),
DebouncedInputEvent::Fall => do_something_upon_fall(),
}
}
Implementations§
Source§impl<Switch: InputSwitch, Config: DebouncedInputConfig> DebouncedInput<Switch, Config>
impl<Switch: InputSwitch, Config: DebouncedInputConfig> DebouncedInput<Switch, Config>
Sourcepub fn new(input_switch: Switch) -> Self
pub fn new(input_switch: Switch) -> Self
Creates a new DebouncedInput<Switch, Config>
from a concrete Switch
.
input_switch
- an concrete instance of Switch
.
Sourcepub fn borrow_input_switch(&self) -> &Switch
pub fn borrow_input_switch(&self) -> &Switch
Borrow Switch
.
Sourcepub fn release_input_switch(self) -> Switch
pub fn release_input_switch(self) -> Switch
Consumes self
and release Switch
.
Trait Implementations§
Source§impl<Switch: InputSwitch, Config: DebouncedInputConfig> Control for DebouncedInput<Switch, Config>
impl<Switch: InputSwitch, Config: DebouncedInputConfig> Control for DebouncedInput<Switch, Config>
type Event = DebouncedInputEvent
type Error = Error<<<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp as Timestamp>::Error, <Switch as InputSwitch>::Error>
Auto Trait Implementations§
impl<Switch, Config> Freeze for DebouncedInput<Switch, Config>
impl<Switch, Config> RefUnwindSafe for DebouncedInput<Switch, Config>where
Switch: RefUnwindSafe,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: RefUnwindSafe,
Config: RefUnwindSafe,
impl<Switch, Config> Send for DebouncedInput<Switch, Config>where
Switch: Send,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: Send,
Config: Send,
impl<Switch, Config> Sync for DebouncedInput<Switch, Config>where
Switch: Sync,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: Sync,
Config: Sync,
impl<Switch, Config> Unpin for DebouncedInput<Switch, Config>where
Switch: Unpin,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: Unpin,
Config: Unpin,
impl<Switch, Config> UnwindSafe for DebouncedInput<Switch, Config>where
Switch: UnwindSafe,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: UnwindSafe,
Config: UnwindSafe,
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