Struct heapless::spsc::Queue [−][src]
pub struct Queue<T, const N: usize> { /* fields omitted */ }
Expand description
A statically allocated single producer single consumer queue with a capacity of N - 1
elements
IMPORTANT: To get better performance use a value for N
that is a power of 2 (e.g. 16
, 32
,
etc.).
Implementations
Iterates from the front of the queue to the back
Returns an iterator that allows modifying each value
Adds an item
to the end of the queue
Returns back the item
if the queue is full
Returns the item in the front of the queue, or None
if the queue is empty
Returns a reference to 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());
Adds an item
to the end of the queue, without checking if it’s full
Unsafety
If the queue is full this operation will leak a value (T’s destructor won’t run on
the value that got overwritten by item
), and will allow the dequeue
operation
to create a copy of item
, which could result in T
’s destructor running on item
twice.
Returns the item in the front of the queue, without checking if there is something in the queue
Unsafety
If the queue is empty this operation will return uninitialized memory.