Struct ArrayQueue
struct ArrayQueue<T> { ... }
A bounded multi-producer multi-consumer queue.
This queue allocates a fixed-capacity buffer on construction, which is used to store pushed
elements. The queue cannot hold more elements than the buffer allows. Attempting to push an
element into a full queue will fail. Alternatively, force_push makes it possible for
this queue to be used as a ring-buffer. Having a buffer allocated upfront makes this queue
a bit faster than SegQueue.
Examples
use ArrayQueue;
let q = new;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Implementations
impl<T> ArrayQueue<T>
fn new(cap: usize) -> ArrayQueue<T>Creates a new bounded queue with the given capacity.
Panics
Panics if the capacity is zero.
Examples
use ArrayQueue; let q = new;fn push(self: &Self, value: T) -> Result<(), T>Attempts to push an element into the queue.
If the queue is full, the element is returned back as an error.
Examples
use ArrayQueue; let q = new; assert_eq!; assert_eq!;fn force_push(self: &Self, value: T) -> Option<T>Pushes an element into the queue, replacing the oldest element if necessary.
If the queue is full, the oldest element is replaced and returned, otherwise
Noneis returned.Examples
use ArrayQueue; let q = new; assert_eq!; assert_eq!; assert_eq!; assert_eq!;fn pop(self: &Self) -> Option<T>Attempts to pop an element from the queue.
If the queue is empty,
Noneis returned.Examples
use ArrayQueue; let q = new; assert_eq!; assert_eq!; assert!;fn capacity(self: &Self) -> usizeReturns the capacity of the queue.
Examples
use ArrayQueue; let q = new; assert_eq!;fn is_empty(self: &Self) -> boolReturns
trueif the queue is empty.Examples
use ArrayQueue; let q = new; assert!; q.push.unwrap; assert!;fn is_full(self: &Self) -> boolReturns
trueif the queue is full.Examples
use ArrayQueue; let q = new; assert!; q.push.unwrap; assert!;fn len(self: &Self) -> usizeReturns the number of elements in the queue.
Examples
use ArrayQueue; let q = new; assert_eq!; q.push.unwrap; assert_eq!; q.push.unwrap; assert_eq!;
impl<T> Any for ArrayQueue<T>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for ArrayQueue<T>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for ArrayQueue<T>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> Debug for ArrayQueue<T>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl<T> Drop for ArrayQueue<T>
fn drop(self: &mut Self)
impl<T> Freeze for ArrayQueue<T>
impl<T> From for ArrayQueue<T>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> IntoIterator for ArrayQueue<T>
fn into_iter(self: Self) -> <Self as >::IntoIter
impl<T> RefUnwindSafe for ArrayQueue<T>
impl<T> Unpin for ArrayQueue<T>
impl<T> UnsafeUnpin for ArrayQueue<T>
impl<T> UnwindSafe for ArrayQueue<T>
impl<T, U> Into for ArrayQueue<T>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for ArrayQueue<T>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for ArrayQueue<T>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>