2 个稳定版本
2.0.0 | 2019年9月27日 |
---|---|
1.0.0 | 2019年9月27日 |
#1712 in 解析器实现
14KB
227 行
parse_list for Rust
将文件和字符串化物品的列表解析为物品化物品的列表。
也就是说,如果您有对 Read
或 Iterator
的 u8
、String
或 str
的读取,并且有一个实现了 FromStr
的类型,您也可以有该类型物品的 Iterator
。
特别设计用于解析以换行符分隔的文件,例如这些 git 整数
0
1
2
3
4
轻松加载您的整数
// Create the file of test data
use std::fs;
let tmp_dir = TempDir::new("tmp").unwrap();
let file_path = tmp_dir.path().join("list");
fs::write(&file_path, "0\n1\n2\n3\n4").unwrap();
// Load from file. Note that each element could result in an individual
// I/O or parse error. Here those are converted into a single `Result<Vec<u32>, _>`.
let v = from_file_lines(&file_path);
let v: Vec<Result<u32, _>> = v.unwrap().collect();
let v: Result<Vec<u32>, _> = v.into_iter().collect();
let v = v.unwrap();
assert!(v == vec![0, 1, 2, 3, 4]);
文档.
许可证
本作品以超级 Rust 四许可证分发
Apache-2.0/MIT/BSL-1.0/CC0-1.0
在允许的司法管辖区中,这与公有领域等效(CC0-1.0)。否则,它与 Rust 许可证兼容,加上包含运行时异常的 BSL-1 选项。这意味着在公有领域司法管辖区之外,源代码必须与作者署名和至少一个许可证一起分发;但在二进制形式下,无需署名或许可证分发。