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 capacity 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.