2 个不稳定版本
0.2.0 | 2019年10月5日 |
---|---|
0.1.0 | 2019年10月3日 |
#1022 in 数据结构
7KB
104 行
Restorable:用于保存和恢复迭代器状态的迭代器适配器
这对于编写需要回溯的词法分析和解析器来说非常理想。
使用方法
- 适配器
use restorable::RestorableIter;
#[test]
fn test_restorable_new() {
let mut iterator = RestorableIter::new(0..4);
assert_eq!(iterator.next(), Some(0));
assert_eq!(iterator.next(), Some(1));
iterator.save();
assert_eq!(iterator.next(), Some(2));
assert_eq!(iterator.next(), Some(3));
iterator.restore();
assert_eq!(iterator.next(), Some(2));
assert_eq!(iterator.next(), Some(3));
assert_eq!(iterator.next(), None);
}
- 特质
use restorable::Restorable;
#[test]
fn test_iter_restorable() {
let mut iterator = (0..4).iter_restorable();
assert_eq!(iterator.next(), Some(0));
assert_eq!(iterator.next(), Some(1));
iterator.save();
assert_eq!(iterator.next(), Some(2));
assert_eq!(iterator.next(), Some(3));
iterator.restore();
assert_eq!(iterator.next(), Some(2));
assert_eq!(iterator.next(), Some(3));
assert_eq!(iterator.next(), None);
}
安装
在您的 cargo.toml 中将 restorable
添加到 [dependencies]
下,并使用适当的版本号。
[dependencies]
restorable = "^MAJOR.MINOR"
变更日志
0.2.0 - 添加了 clear
以停止保存并清除缓冲区。