[][src]Struct rpds::queue::Queue

pub struct Queue<T> { /* fields omitted */ }

A persistent queue with structural sharing.

Complexity

Let n be the number of elements in the queue.

Temporal complexity

Operation Average Worst case
new() Θ(1) Θ(1)
enqueue() Θ(1) Θ(1)
dequeue() Θ(1) Θ(n)
dequeue() amortized Θ(1) Θ(1)
peek() Θ(1) Θ(1)
len() Θ(1) Θ(1)
clone() Θ(1) Θ(1)
iterator creation Θ(1) Θ(1)
iterator step Θ(1) Θ(n)
iterator full Θ(n) Θ(n)

Implementation details

This queue is implemented as described in Immutability in C# Part Four: An Immutable Queue.

Methods

impl<T> Queue<T>[src]

#[must_use]
pub fn new() -> Queue<T>
[src]

#[must_use]
pub fn peek(&self) -> Option<&T>
[src]

#[must_use]
pub fn dequeue(&self) -> Option<Queue<T>>
[src]

pub fn dequeue_mut(&mut self) -> bool[src]

#[must_use]
pub fn enqueue(&self, v: T) -> Queue<T>
[src]

pub fn enqueue_mut(&mut self, v: T)[src]

#[must_use]
pub fn len(&self) -> usize
[src]

#[must_use]
pub fn is_empty(&self) -> bool
[src]

#[must_use]
pub fn iter(&self) -> Iter<T>
[src]

Trait Implementations

impl<'a, T> IntoIterator for &'a Queue<T>[src]

type Item = &'a T

The type of the elements being iterated over.

type IntoIter = Iter<'a, T>

Which kind of iterator are we turning this into?

impl<T: Eq> Eq for Queue<T>[src]

impl<T> Clone for Queue<T>[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T: PartialOrd<T>> PartialOrd<Queue<T>> for Queue<T>[src]

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<T: PartialEq> PartialEq<Queue<T>> for Queue<T>[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<T> Default for Queue<T>[src]

impl<T: Ord> Ord for Queue<T>[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl<T: Hash> Hash for Queue<T>[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<T> FromIterator<T> for Queue<T>[src]

impl<T: Debug> Debug for Queue<T>[src]

impl<T: Display> Display for Queue<T>[src]

impl<T> Serialize for Queue<T> where
    T: Serialize
[src]

impl<'de, T> Deserialize<'de> for Queue<T> where
    T: Deserialize<'de>, 
[src]

Auto Trait Implementations

impl<T> Send for Queue<T> where
    T: Send + Sync

impl<T> Sync for Queue<T> where
    T: Send + Sync

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]