#buffer #rb-tree #intervals #free #red-black #defrag #inserted

rbtree-defrag-buffer

基于红黑树的碎片整理缓冲区,维护插入和空闲区间

1 个不稳定版本

0.1.0 2023年9月21日

#2286算法

MIT 许可证

9KB
156

Rust 中基于红黑树的碎片整理缓冲区

实现的碎片整理缓冲区维护插入和空闲区间。它支持快速区间插入,最快可达数百纳秒。

示例

示例代码为 10 字节区间创建一个碎片整理缓冲区。它插入范围 2..7,缓冲区给出两个空闲区间,一个是 0..2,另一个是 7..10。

use rbtree_defrag_buffer::DefragBuf;

let mut buf = DefragBuf::new(10);
buf.insert(2..7).unwrap();

let free_invs: Vec<_> = buf.free_intervals().collect();
assert_eq!(free_invs, vec![0..2, 7..10]);

许可证

本软件基于 MIT 许可证分发。请查阅 LICENSE.txt 文件以查看完整的许可证。


lib.rs:

基于红黑树的碎片整理缓冲区,维护插入和空闲区间。

use rbtree_defrag_buffer::DefragBuf;

let mut buf = DefragBuf::new(10);
buf.insert(2..7).unwrap();

let free_invs: Vec<_> = buf.free_intervals().collect();
assert_eq!(free_invs, vec![0..2, 7..10]);

依赖项

~520KB
~11K SLoC