VecDeque is a double-ended queue, which is implemented with the help of a growing ring buffer.
This queue has
O(1) amortized inserts and removals from both ends of the
container. It also has
O(1) indexing like a vector. The contained elements
are not required to be copyable, and the queue will be sendable if the
contained type is sendable.
A by-value VecDeque iterator
A draining VecDeque iterator