4个版本
0.2.1 | 2022年7月12日 |
---|---|
0.2.0 | 2022年7月12日 |
0.1.1 | 2022年7月11日 |
0.1.0 | 2022年7月11日 |
8在#lines
12KB
174 行
tokio-rev-lines
此库提供了一种异步流,用于按行读取文件或任何BufReader
,并具有反向缓冲。
它是rev_lines的异步tokio版本。
文档
文档可在Docs.rs上找到。
示例
use futures_util::{pin_mut, StreamExt};
use tokio::{fs::File, io::BufReader};
use tokio_rev_lines::RevLines;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let file = File::open("tests/multi_line_file").await?;
let rev_lines = RevLines::new(BufReader::new(file)).await?;
pin_mut!(rev_lines);
while let Some(line) = rev_lines.next().await {
println!("{}", line?);
}
Ok(())
}
lib.rs
:
此库提供了一种异步流,用于按行读取文件或任何BufReader
,并具有反向缓冲。
它是rev_lines的异步tokio版本。
示例
use futures_util::{pin_mut, StreamExt};
use tokio::{fs::File, io::BufReader};
use tokio_rev_lines::RevLines;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let file = File::open("tests/multi_line_file").await?;
let rev_lines = RevLines::new(BufReader::new(file)).await?;
pin_mut!(rev_lines);
while let Some(line) = rev_lines.next().await {
println!("{}", line?);
}
Ok(())
}
此方法使用了从uutils/coreutils tail借用的逻辑。
依赖关系
~3–4.5MB
~79K SLoC