#ring-buffer #buffer #circular #ring #queue

linebuffer

动态大小的u8元素的ringbuffer

3个版本

0.1.2 2019年10月16日
0.1.1 2019年10月9日
0.1.0 2019年10月8日

#30 in #circular

MIT/Apache

17KB
335

LineBuffer - 不是元素的固定大小,而是不同大小的ringbuffer

crates.io docs.rs Build Status

此crate专门用于以下场景

  • 高数据吞吐量
  • 不频繁读取条目或整个缓冲区
  • 条目是可区分的字节数组
  • 数据具有动态大小
  • 编号是无限的

例如,您可以将其用于按行缓冲进程的stdout。
它允许设置要存储的最后一行数量和环绕前的字节大小。

示例

use linebuffer::{typenum, LineBuffer};

// create a buffer of max 2048 entries/lines and 512KB data cache
// with the additional flag type ()
let mut buffer: LineBuffer<(), typenum::U2048> = LineBuffer::new(512_000);

let data = String::from("Some data stuff");
buffer.insert(data.as_bytes(),());
assert_eq!(buffer.get(0),Some((data.as_bytes(), &())));

依赖项

~360KB