Struct Signal

Source
pub struct Signal { /* private fields */ }
Expand description

A Signal represents listens for a pulse to occur in the system. A Signal has one of three states. Pending, Pulsed, or Errored. Pending means the pulse has not fired, but still exists. Pulsed meaning the pulse has fired, and no longer exists. Errored means the pulse was dropped without firing. This normally means a programming error of some sort.

Implementations§

Source§

impl Signal

Source

pub fn new() -> (Signal, Pulse)

Create a Signal and a Pulse that are associated.

Source

pub fn pulsed() -> Signal

Create a signal that is already pulsed

Source

pub fn state(&self) -> SignalState

Read out the state of the Signal

Source

pub fn is_pending(&self) -> bool

Check to see if the signal is pending. A signal

Source

pub fn id(&self) -> usize

This is a unique id that can be used to identify the signal from others See Select for how this api is useful.

Source

pub fn wait(self) -> Result<(), WaitError>

Block the current thread until a pulse is ready. This will block indefinably if the pulse never fires.

Source

pub fn wait_timeout_ms(self, ms: u32) -> Result<(), TimeoutError>

Block until either the pulse is sent, or the timeout is reached

Source

pub fn callback<F>(self, cb: F)
where F: FnOnce() + 'static,

Trait Implementations§

Source§

impl Clone for Signal

Source§

fn clone(&self) -> Signal

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Signal

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Drop for Signal

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl FromRawPtr for Signal

Source§

unsafe fn from_raw(ptr: *mut ()) -> Signal

Source§

impl IntoRawPtr for Signal

Source§

unsafe fn into_raw(self) -> *mut ()

Source§

impl Send for Signal

Source§

impl Sync for Signal

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.