Struct avr_oxide::devices::button::Button

source ·
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,

source

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.

source

pub fn pullup(self, enable: bool) -> Self

Enable or disable the internal pullup on this pin

source

pub fn is_pressed(&self) -> bool

True if and only if this button is currently pressed

source

pub fn state(&self) -> ButtonState

Return the current state of this button.

source

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,

source§

fn listen(&'static self)

source§

fn process_event(&self, evt: OxideEvent)

source§

impl<'b, S> UsesPin for Button<'b, S>
where S: 'static + EventSink,

source§

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) -> Self
where 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 Self
where 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 Self
where 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
source§

impl<S> Send for Button<'_, S>
where S: EventSink,

source§

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> 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, 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>,

§

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>,

§

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.