Struct crossbeam_queue::SegQueue[][src]

pub struct SegQueue<T> { /* fields omitted */ }
Expand description

An unbounded multi-producer multi-consumer queue.

This queue is implemented as a linked list of segments, where each segment is a small buffer that can hold a handful of elements. There is no limit to how many elements can be in the queue at a time. However, since segments need to be dynamically allocated as elements get pushed, this queue is somewhat slower than ArrayQueue.

Examples

use crossbeam_queue::SegQueue;

let q = SegQueue::new();

q.push('a');
q.push('b');

assert_eq!(q.pop(), Some('a'));
assert_eq!(q.pop(), Some('b'));
assert!(q.pop().is_none());

Implementations

Creates a new unbounded queue.

Examples
use crossbeam_queue::SegQueue;

let q = SegQueue::<i32>::new();

Pushes an element into the queue.

Examples
use crossbeam_queue::SegQueue;

let q = SegQueue::new();

q.push(10);
q.push(20);

Pops an element from the queue.

If the queue is empty, None is returned.

Examples
use crossbeam_queue::SegQueue;

let q = SegQueue::new();

q.push(10);
assert_eq!(q.pop(), Some(10));
assert!(q.pop().is_none());

Returns true if the queue is empty.

Examples
use crossbeam_queue::SegQueue;

let q = SegQueue::new();

assert!(q.is_empty());
q.push(1);
assert!(!q.is_empty());

Returns the number of elements in the queue.

Examples
use crossbeam_queue::SegQueue;

let q = SegQueue::new();
assert_eq!(q.len(), 0);

q.push(10);
assert_eq!(q.len(), 1);

q.push(20);
assert_eq!(q.len(), 2);

Trait Implementations

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.