#queue #buffer #bounded #max #bounds-preserving

bndpresbufq

边界保持、可选限制的缓冲队列

1 个不稳定版本

0.1.0 2024年4月9日

#1931 in 数据结构

0BSD 许可证

9KB
158

边界保持缓冲队列

BndPresLimBufQ 是一个边界保持、可选限制的缓冲队列。


lib.rs:

BndPresLimBufQ 是一个边界保持、可选限制的缓冲队列。

术语

长度 用于指代队列中元素的数量。 大小 用于指代队列中的总字节数。

示例

use bndpresbufq::BndPresLimBufQ;

// Construct a queue with a maximum 2 element length limit and 4 bytes size
// limit
let mut q = BndPresLimBufQ::new(Some(2), Some(4));

// Add elements to fill up to queue
q.try_push(vec![1, 2]).unwrap();
q.force_push(vec![3, 4]);

// Fail to add new node
assert_eq!(q.try_push(vec![5]), Err(vec![5]));

// Forcibly add node; expelling the oldest node
q.force_push([6].into());

assert_eq!(q.pop(), Some(vec![3, 4]));
assert_eq!(q.pop(), Some(vec![6]));
assert_eq!(q.pop(), None);

依赖项

~9KB