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());