Skip to main content

Monitor

Struct Monitor 

Source
pub struct Monitor<A: PollButton, B: PollButton> { /* private fields */ }
Expand description

Wrapper for two PollButtons generating click events on release.

The buttons don’t have to be the micro:bit’s built-in buttons, though the generated Events include ‘A’ and ‘B’ in their names.

Implementations§

Source§

impl<A: PollButton, B: PollButton> Monitor<A, B>

Source

pub fn new(button_a: A, button_b: B) -> Monitor<A, B>

Takes ownership of two PollButtons and returns a Monitor.

Source

pub fn free(self) -> (A, B)

Gives the underlying PollButton instances back.

Source

pub fn poll(&mut self) -> Option<Event>

Polls both buttons and filters for events.

If both buttons have been pressed, returns Some(ClickAB) when the second one is released.

Otherwise, returns Some(ClickA) if the first button was released or Some(ClickB) if the second button was released.

Otherwise returns None.

Auto Trait Implementations§

§

impl<A, B> Freeze for Monitor<A, B>
where A: Freeze, B: Freeze,

§

impl<A, B> RefUnwindSafe for Monitor<A, B>

§

impl<A, B> Send for Monitor<A, B>
where A: Send, B: Send,

§

impl<A, B> Sync for Monitor<A, B>
where A: Sync, B: Sync,

§

impl<A, B> Unpin for Monitor<A, B>
where A: Unpin, B: Unpin,

§

impl<A, B> UnsafeUnpin for Monitor<A, B>
where A: UnsafeUnpin, B: UnsafeUnpin,

§

impl<A, B> UnwindSafe for Monitor<A, B>
where A: UnwindSafe, B: 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, 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> Same for T

Source§

type Output = T

Should always be Self
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.