pub struct Button<'b, S>where
S: EventSink,{ /* private fields */ }
Expand description
Encapsulation of a Button attached to a standard GPIO pin. Generates Oxide events on button events (press/release.)
Implementations§
source§impl<'b, S> Button<'b, S>where
S: 'static + EventSink,
impl<'b, S> Button<'b, S>where
S: 'static + EventSink,
sourcepub fn on_click(&self, bf: Box<dyn FnMut(PinIdentity, ButtonState) + 'b>)
pub fn on_click(&self, bf: Box<dyn FnMut(PinIdentity, ButtonState) + 'b>)
Have the Oxide supervisor execute the given closure every time an event is generated by this device.
sourcepub fn is_pressed(&self) -> bool
pub fn is_pressed(&self) -> bool
True if and only if this button is currently pressed
sourcepub fn state(&self) -> ButtonState
pub fn state(&self) -> ButtonState
Return the current state of this button.
sourcepub fn wait_for_change(&self) -> ButtonState
pub fn wait_for_change(&self) -> ButtonState
Block until the state of this button changes. The new state is returned.
Trait Implementations§
source§impl<S> EventSource for Button<'_, S>where
S: EventSink,
impl<S> EventSource for Button<'_, S>where
S: EventSink,
fn listen(&'static self)
fn process_event(&self, evt: OxideEvent)
source§impl<'b, S> UsesPin for Button<'b, S>where
S: 'static + EventSink,
impl<'b, S> UsesPin for Button<'b, S>where
S: 'static + EventSink,
source§fn using<OP: Into<OwnOrBorrow<'static, dyn Pin>>>(pin: OP) -> Self
fn using<OP: Into<OwnOrBorrow<'static, dyn Pin>>>(pin: OP) -> Self
Create an instance of this device that uses the given instance of
a pin (by ownership or reference.)
source§fn with_pin(pin: &'static dyn Pin) -> Selfwhere
Self: Sized,
fn with_pin(pin: &'static dyn Pin) -> Selfwhere
Self: Sized,
Convenience method to create an instance of this device with a
given static reference to a pin (avoids a certain amount of type
hinting boilerplate for the caller.)
source§fn static_using<OP: Into<OwnOrBorrow<'static, dyn Pin>>>(
pin: OP
) -> &'static mut Selfwhere
Self: Sized,
fn static_using<OP: Into<OwnOrBorrow<'static, dyn Pin>>>(
pin: OP
) -> &'static mut Selfwhere
Self: Sized,
Create an instance of this device that uses the given instance of a pin,
and return a static reference good for the lifetime of the program. Read more
source§fn static_with_pin(pin: &'static dyn Pin) -> &'static mut Selfwhere
Self: Sized,
fn static_with_pin(pin: &'static dyn Pin) -> &'static mut Selfwhere
Self: Sized,
Create an instance of this device that uses the given reference to a pin,
and return a static reference good for the lifetime of the program. Read more
impl<S> Send for Button<'_, S>where
S: EventSink,
impl<S> Sync for Button<'_, S>where
S: EventSink,
Auto Trait Implementations§
impl<'b, S> !Freeze for Button<'b, S>
impl<'b, S> !RefUnwindSafe for Button<'b, S>
impl<'b, S> Unpin for Button<'b, S>where
S: Unpin,
impl<'b, S> !UnwindSafe for Button<'b, S>
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