#buffer #queue #fifo #small

no-std circular-buffer

高效、固定大小、覆盖式环形缓冲区

8 个版本

0.1.7 2024年3月17日
0.1.6 2023年11月26日
0.1.3 2023年8月28日
0.1.1 2023年2月1日
0.1.0 2023年1月28日

#110数据结构

Download history 2491/week @ 2024-03-14 2597/week @ 2024-03-21 3321/week @ 2024-03-28 4139/week @ 2024-04-04 3897/week @ 2024-04-11 3701/week @ 2024-04-18 4071/week @ 2024-04-25 3903/week @ 2024-05-02 3621/week @ 2024-05-09 3958/week @ 2024-05-16 3606/week @ 2024-05-23 4020/week @ 2024-05-30 4575/week @ 2024-06-06 4350/week @ 2024-06-13 4407/week @ 2024-06-20 4011/week @ 2024-06-27

18,068 每月下载量
用于 11 仓库(9 个直接使用)

BSD-3-Clause

175KB
3K SLoC

Rust 环形缓冲区

Crate Documentation License

这是一个 Rust 仓库,实现了环形缓冲区,也称为循环缓冲区、循环队列或环形队列。

这个环形缓冲区具有固定的最大容量,不会自动增长,一旦达到最大容量,缓冲区起始处的元素将被覆盖。它适用于实现具有固定内存容量的快速 FIFO(先进先出)和 LIFO(后进先出)队列。

有关更多信息和方法,请参阅文档

变更日志

有关版本之间的完整更改列表,请访问GitHub

示例

use circular_buffer::CircularBuffer;

// Initialize a new, empty circular buffer with a capacity of 5 elements
let mut buf = CircularBuffer::<5, u32>::new();

// Add a few elements
buf.push_back(1);
buf.push_back(2);
buf.push_back(3);
assert_eq!(buf, [1, 2, 3]);

// Add more elements to fill the buffer capacity completely
buf.push_back(4);
buf.push_back(5);
assert_eq!(buf, [1, 2, 3, 4, 5]);

// Adding more elements than the buffer can contain causes the front elements to be
// automatically dropped
buf.push_back(6);
assert_eq!(buf, [2, 3, 4, 5, 6]); // `1` got dropped to make room for `6`

无运行时依赖项