heapless::spsc

Struct Producer

Source
pub struct Producer<'a, T, const N: usize> { /* private fields */ }
Expand description

A queue “producer”; it can enqueue items into the queue NOTE the producer semantically owns the tail pointer of the queue

Implementations§

Source§

impl<'a, T, const N: usize> Producer<'a, T, N>

Source

pub fn enqueue(&mut self, val: T) -> Result<(), T>

Adds an item to the end of the queue, returns back the item if the queue is full

Source

pub unsafe fn enqueue_unchecked(&mut self, val: T)

Adds an item to the end of the queue, without checking if the queue is full

See Queue::enqueue_unchecked for safety

Source

pub fn ready(&self) -> bool

Returns if there is any space to enqueue a new item. When this returns true, at least the first subsequent enqueue will succeed.

Source

pub fn len(&self) -> usize

Returns the number of elements in the queue

Source

pub fn capacity(&self) -> usize

Returns the maximum number of elements the queue can hold

Trait Implementations§

Source§

impl<'a, T, const N: usize> Send for Producer<'a, T, N>
where T: Send,

Auto Trait Implementations§

§

impl<'a, T, const N: usize> Freeze for Producer<'a, T, N>

§

impl<'a, T, const N: usize> !RefUnwindSafe for Producer<'a, T, N>

§

impl<'a, T, const N: usize> !Sync for Producer<'a, T, N>

§

impl<'a, T, const N: usize> Unpin for Producer<'a, T, N>

§

impl<'a, T, const N: usize> !UnwindSafe for Producer<'a, T, N>

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

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 4 bytes