1 个不稳定版本
| 0.1.0 | 2019 年 3 月 4 日 |
|---|
#367 在 文本编辑器
14KB
193 行
GapVec
此库实现了间隙向量。
众所周知,这种数据结构适用于编辑器,实际上也可以用于 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());