ringbuf 0.5.3

Lock-free SPSC FIFO ring buffer with direct access to inner data
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::{traits::*, HeapRb};
use test::{black_box, Bencher};

const RB_SIZE: usize = 64 * 1024;

#[bench]
fn skip_bytes(b: &mut Bencher) {
    let buf = HeapRb::<u8>::new(RB_SIZE);
    let (mut prod, mut cons) = buf.split();
    prod.push_slice(&[1; RB_SIZE / 2]);
    let data = [1; RB_SIZE / 2];
    b.iter(|| {
        prod.push_slice(&data);
        black_box(cons.skip(black_box(RB_SIZE / 2)));
    });
}