Struct hoop::Hoop [] [src]

pub struct Hoop<T: Clone> { /* fields omitted */ }

Yet another ring buffer implmentation. This one has ability to iterate both ways without mutation buffer.

Usage

use hoop::Hoop;

let mut buffer = Hoop::with_capacity(4);
buffer.write('1');
buffer.write('2');
buffer.write('3');
buffer.write('4');
let mut iter = buffer.iter();
assert_eq!(Some(&'1'), iter.next());
assert_eq!(Some(&'4'), iter.next_back());
assert_eq!(Some(&'2'), iter.next());
assert_eq!(Some(&'3'), iter.next_back());
assert_eq!(None, iter.next());
assert_eq!(None, iter.next_back());

Methods

impl<T: Clone> Hoop<T>
[src]

[src]

Create new ring buffer with desired capacity.

[src]

Capacity of inner Vec.

[src]

Pop oldest item from a buffer.

[src]

Try writting to a buffer.

[src]

Write even if at a capacity. This ither is a normal write or overwrite + move read position forward.

[src]

Clear buffer. This is O(n) operation.

[src]

Create non-consuming iterator.