Struct heapless::spsc::Consumer [−][src]
pub struct Consumer<'a, T, const N: usize> { /* fields omitted */ }
Expand description
A queue “consumer”; it can dequeue items from the queue
NOTE the consumer semantically owns the head
pointer of the queue
Implementations
impl<'a, T, const N: usize> Consumer<'a, T, N>
[src]
impl<'a, T, const N: usize> Consumer<'a, T, N>
[src]pub fn dequeue(&mut self) -> Option<T>
[src]
pub fn dequeue(&mut self) -> Option<T>
[src]Returns the item in the front of the queue, or None
if the queue is empty
pub unsafe fn dequeue_unchecked(&mut self) -> T
[src]
pub unsafe fn dequeue_unchecked(&mut self) -> T
[src]Returns the item in the front of the queue, without checking if there are elements in the queue
See Queue::dequeue_unchecked
for safety
pub fn ready(&self) -> bool
[src]
pub fn ready(&self) -> bool
[src]Returns if there are any items to dequeue. When this returns true
, at least the
first subsequent dequeue will succeed
pub fn peek(&self) -> Option<&T>
[src]
pub fn peek(&self) -> Option<&T>
[src]Returns the item in the front of the queue without dequeuing, or None
if the queue is
empty
Examples
use heapless::spsc::Queue; let mut queue: Queue<u8, 235> = Queue::new(); 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());