2 个版本
0.1.1 | 2020年8月13日 |
---|---|
0.1.0 | 2020年8月11日 |
#2463 in 数据结构
每月 28 次下载
用于 simple-rate-limit
8KB
99 代码行
ring-vec
基于向量的零依赖、与 no-std 兼容、生产者-消费者、固定大小、面向项的环形缓冲区。
需要 alloc
,用于向量。
状态
全新,有基本测试,似乎可以正常工作。
用法
#[test]
fn works() {
let mut q: RingVec<usize> = RingVec::new(1);
assert_eq!(q.peek(), None);
assert_eq!(q.pop(), None);
assert_eq!(q.push(1), Ok(()));
assert_eq!(q.peek(), Some(&1));
assert_eq!(q.pop(), Some(1));
assert_eq!(q.peek(), None);
assert_eq!(q.pop(), None);
assert_eq!(q.push(2), Ok(()));
assert_eq!(q.peek(), Some(&2));
assert_eq!(q.push(3), Err(3));
assert_eq!(q.pop(), Some(2));
assert_eq!(q.push(4), Ok(()));
assert_eq!(q.peek(), Some(&4));
assert_eq!(q.pop(), Some(4));
assert_eq!(q.peek(), None);
assert_eq!(q.pop(), None);
assert_eq!(q.peek(), None);
}
版权和许可证
Copyright (c) 2020 James Laver, ring-vec contributors.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.