#io-read #peek #eof #peeky #we-re

已删除 peeky-read

检查io::Read是否到达EOF

使用旧Rust 2015

0.1.0 2017年6月27日

#7 in #eof

MIT 许可证

5KB
94

peeky-read

一个单结构库,提供 PeekyRead.

PeekyRead 接收一个 io::Read 的所有权,并提供一个 check_eof() -> io::Result<bool>.

这是通过从底层读取器实际读取一个字节来完成的。该字节被存储,并由下一个 read() 自动返回,所以没有丢失任何东西,过渡应该是透明的。


lib.rs:

包装一个 io::Read 并提供 check_eof()。如果有错误返回,则底层读取器也会返回。

示例

use std::io::Read;
use peeky_read::PeekyRead;
let mut underlying = std::io::Cursor::new([0u8; 1]);
let mut reader = PeekyRead::new(&mut underlying);

// We're not at the EOF as there's bytes to read.
assert_eq!(false, reader.check_eof().unwrap());
let mut buf = [0u8; 32];
assert_eq!(1, reader.read(&mut buf).unwrap());

// We've read the only byte in the reader, so we're now at the EOF.
assert_eq!(true, reader.check_eof().unwrap());

无运行时依赖