Struct heapless::spsc::Consumer [−][src]
pub struct Consumer<'a, T, N, U = usize, C = MultiCore> where
N: ArrayLength<T>,
U: Uxx,
C: XCore, { /* fields omitted */ }
Expand description
A queue “consumer”; it can dequeue items from the queue
Implementations
Returns if there are any items to dequeue. When this returns true, at least the first subsequent dequeue will succeed.
Returns the item in the front of the queue without dequeuing, or None
if the queue is empty.
Examples
use heapless::spsc::Queue; use heapless::consts::*; let mut queue: Queue<u8, U235, _> = Queue::u8(); let (mut producer, mut consumer) = queue.split(); assert_eq!(None, consumer.peek()); producer.enqueue(1); assert_eq!(Some(&1), consumer.peek()); assert_eq!(Some(1), consumer.dequeue()); assert_eq!(None, consumer.peek());
Returns the item in the front of the queue, or None
if the queue is empty
Returns the item in the front of the queue, without checking if it’s empty
Unsafety
If the queue is empty this is equivalent to calling mem::uninitialized
Returns if there are any items to dequeue. When this returns true, at least the first subsequent dequeue will succeed.
Returns the item in the front of the queue without dequeuing, or None
if the queue is empty.
Examples
use heapless::spsc::Queue; use heapless::consts::*; let mut queue: Queue<u8, U235, _> = Queue::u8(); let (mut producer, mut consumer) = queue.split(); assert_eq!(None, consumer.peek()); producer.enqueue(1); assert_eq!(Some(&1), consumer.peek()); assert_eq!(Some(1), consumer.dequeue()); assert_eq!(None, consumer.peek());
Returns the item in the front of the queue, or None
if the queue is empty
Returns the item in the front of the queue, without checking if it’s empty
Unsafety
If the queue is empty this is equivalent to calling mem::uninitialized
Returns if there are any items to dequeue. When this returns true, at least the first subsequent dequeue will succeed.
Returns the item in the front of the queue without dequeuing, or None
if the queue is empty.
Examples
use heapless::spsc::Queue; use heapless::consts::*; let mut queue: Queue<u8, U235, _> = Queue::u8(); let (mut producer, mut consumer) = queue.split(); assert_eq!(None, consumer.peek()); producer.enqueue(1); assert_eq!(Some(&1), consumer.peek()); assert_eq!(Some(1), consumer.dequeue()); assert_eq!(None, consumer.peek());
Returns the item in the front of the queue, or None
if the queue is empty
Returns the item in the front of the queue, without checking if it’s empty
Unsafety
If the queue is empty this is equivalent to calling mem::uninitialized
Trait Implementations
impl<'a, T, N, U, C> Send for Consumer<'a, T, N, U, C> where
N: ArrayLength<T>,
T: Send,
U: Uxx,
C: XCore,
Auto Trait Implementations
impl<'a, T, N, U, C> Unpin for Consumer<'a, T, N, U, C>
Blanket Implementations
pub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
pub fn from(t: T) -> T
pub fn from(t: T) -> T
Performs the conversion.
pub fn into(self) -> U
pub fn into(self) -> U
Performs the conversion.