4 个版本
0.1.3 | 2020 年 2 月 13 日 |
---|---|
0.1.2 | 2020 年 2 月 4 日 |
0.1.1 | 2020 年 1 月 31 日 |
0.1.0 | 2020 年 1 月 31 日 |
在 #索引 中排名 28
每月下载量 56
15KB
288 行(不包括注释)
索引环形缓冲区
一个索引多个可读的 spsc 环形缓冲区。
概述
- 通过绝对索引访问。
- 单生产者单消费者,多读者。
- 使用 parking_lot 的 RwLock。
示例
extern crate indexed_ring_buffer;
use indexed_ring_buffer::*;
let (mut p, mut c, r) = indexed_ring_buffer::<usize>(0, 5);
for i in 0..101 {
p.push(i);
c.shift();
}
for i in 101..106 {
p.push(i);
}
let (start, end, data) = r.get_from(101,5).unwrap();
assert_eq!(data,vec![101,102,103,104,105]);
assert_eq!(start,101);
assert_eq!(end,105);
c.shift_to(105);
let rslt = r.get_all();
assert_eq!(rslt,None);
许可协议
许可协议为以下之一
- Apache 许可协议,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在作品中的贡献,如 Apache-2.0 许可证中定义,应如上所述双许可,不附加任何额外条款或条件。
依赖关系
~0.5–0.8MB
~13K SLoC