#list #parse #iterator #read #file #stringified #thingified

parse_list

将字符串化物品的文件和列表解析为物品化物品的列表

2 个稳定版本

2.0.0 2019年9月27日
1.0.0 2019年9月27日

#1712 in 解析器实现

Apache-2.0/MIT/BSL-1.0/CC0-1.0

14KB
227

parse_list for Rust

将文件和字符串化物品的列表解析为物品化物品的列表。

也就是说,如果您有对 ReadIteratoru8Stringstr 的读取,并且有一个实现了 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 选项。这意味着在公有领域司法管辖区之外,源代码必须与作者署名和至少一个许可证一起分发;但在二进制形式下,无需署名或许可证分发。

无运行时依赖