Trait QueueModel

Source
pub trait QueueModel {
    type Item;

    // Required methods
    fn enqueue(&mut self, item: Self::Item) -> bool;
    fn dequeue(&mut self) -> Option<Self::Item>;
    fn count(&self) -> usize;

    // Provided method
    fn is_empty(&self) -> bool { ... }
}
Expand description

Trait which queue implementations must conform to.

Required Associated Types§

Source

type Item

The type of items in the queue.

Required Methods§

Source

fn enqueue(&mut self, item: Self::Item) -> bool

Attempts to enqueue an item; returns whether or not it was successful.

Source

fn dequeue(&mut self) -> Option<Self::Item>

Attempts to dequeue an item; returns None if there are no items available.

Source

fn count(&self) -> usize

Checks the current number of items in the queue.

Provided Methods§

Source

fn is_empty(&self) -> bool

Checks if the queue is empty.

Implementations on Foreign Types§

Source§

impl<T> QueueModel for VecDeque<T>

Source§

type Item = T

Source§

fn enqueue(&mut self, item: Self::Item) -> bool

Source§

fn dequeue(&mut self) -> Option<Self::Item>

Source§

fn count(&self) -> usize

Source§

fn is_empty(&self) -> bool

Source§

impl<T: Ord> QueueModel for BinaryHeap<T>

Source§

type Item = T

Source§

fn enqueue(&mut self, item: Self::Item) -> bool

Source§

fn dequeue(&mut self) -> Option<Self::Item>

Source§

fn count(&self) -> usize

Source§

fn is_empty(&self) -> bool

Implementors§

Source§

impl<T, const N: usize> QueueModel for StaticRingQueue<T, N>

Source§

type Item = T

Source§

impl<T: Ord, const N: usize> QueueModel for StaticPriorityQueue<T, N>

Source§

type Item = T