Skip to main content

QueueModel

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

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

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

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