如何迭代文件

时间:2018-02-26 08:19:49

标签: file iterator rust

相关:Read file character-by-character in Rust,但那里的答案没有解决如何生成Iterator以产生文件中的字符的问题。

我正在编写一个带有这样签名的函数:

fn lex(chars: Iterator<Item=char>) -> Tokens {
}

接受char s的迭代器,并返回另一个迭代器。

我希望能够为此功能编写测试,例如通过在字符串对象上传入调用chars()的结果。

在我的产品中,在代码上,我想读取一个文本文件并将该文件中的字符传递给我的函数。目前,我并不关心如果文件无效UTF-8会发生什么。

我很乐意更改功能的签名,例如接受Iterator<Item=Result<char, SomeErrorType>>,但我确实想要按需使用文件,而不是事先阅读整个文件。

如果有帮助,我很乐意在测试中使用BufReadio::Cursor

我看了Read上的chars(),但它不稳定,看起来永远不会稳定。

那么,我如何迭代文件中的字符?

0 个答案:

没有答案