Crates.io | ring_buffer |
lib.rs | ring_buffer |
version | 2.0.2 |
source | src |
created_at | 2019-07-13 00:57:38.382274 |
updated_at | 2021-07-02 10:38:16.231657 |
description | RingBuffer is a queue with added random access. |
homepage | https://crates.io/crates/ring_buffer |
repository | https://git.h3n.eu/Kulasko/ring_buffer |
max_upload_size | |
id | 148660 |
size | 62,429 |
RingBuffer
is a mix of a vector and a queue. It allows for direct element
access as well as pushing and popping elements like a queue.
use ringbuffer::RingBuffer;
fn main() {
let mut buffer = RingBuffer::new();
let first_index = buffer.push(42);
let second_index = buffer.push(9001);
println!("{} == {}", buffer.get_relative(0),
buffer.get_absolute(first_index));
println!("{} == {}", buffer.get_relative(1),
buffer.get_absolute(second_index));
}
The features of RingBuffer come in handy when processing a stream of elements while also needing to access elements at random.