#gap #structure #vec #editor #text

nightly gap_vec

GapVec 数据结构在 Rust 中

1 个不稳定版本

0.1.0 2019 年 3 月 4 日

#367文本编辑器

MIT 许可协议

14KB
193

GapVec

Build Status License License: MIT

此库实现了间隙向量。

众所周知,这种数据结构适用于编辑器,实际上也可以用于 emacs。您可以有效地进行 插入删除 文本。


lib.rs:

一个连续可增长的数组类型,具有堆分配的内容和间隙。它写作 GapVec<T> 但发音为 'gap vector'。

示例

您可以使用 new 显式创建一个 GapVec<T>

use gap_vec::GapVec;

let mut gap_vec: GapVec<i32> = GapVec::new();

您可以通过 insert 添加值(这将在需要时扩展间隙向量)

use gap_vec::GapVec;

let mut gap_vec = GapVec::new();

gap_vec.insert("onion".to_string());

您可以通过 remove 以类似的方式删除值

use gap_vec::GapVec;

let mut gap_vec = GapVec::new();

gap_vec.insert("foo".to_string());
gap_vec.set_position(0);
assert_eq!(gap_vec.remove().unwrap(), "foo".to_string());

无运行时依赖项