Crate circ_buffer
source ·Expand description
A const-sized Ring-Buffer datastructure.
The crate is no_std.
It uses elements from the standard library for testing purposes but does not rely on them for
internal implementation details.
Memory is zeroed after usage such that no leakage occurs.
§Example
use circ_buffer::RingBuffer;
let mut ring_buffer = RingBuffer::<_, 5>::new();
ring_buffer.push("Aurea prima");
ring_buffer.push("sata est");
ring_buffer.push("aetas, quae");
ring_buffer.push("vindice nullo");
ring_buffer.push("sponte sua,");
ring_buffer.push("sine lege fidem");
ring_buffer.push("rectumque colebat.");
let elements: Vec<_> = ring_buffer.into_iter().collect();
assert_eq!(elements[0], "aetas, quae");
assert_eq!(elements[1], "vindice nullo");
assert_eq!(elements[2], "sponte sua,");
assert_eq!(elements[3], "sine lege fidem");
assert_eq!(elements[4], "rectumque colebat.");§Features
- serde allows for deserialization of the RingBuffer
Structs§
- A ring Buffer with constant size. Makes use of a fixed-size array internally.
- Iterator of the RingBuffer struct.