在 Rust 中,如何使用多个库进行读取和写入来创建管道处理?

问题描述 投票:0回答:0

使用文本流,我使用 aho_corasick crate,它允许在线性时间内有效地替换流文本上的许多字符串。它的流接口主要由以下功能组成:

aho_corasick::ahocorasick::AhoCorasick
pub fn stream_replace_all<R, W, B>(&self, rdr: R, wtr: W, replace_with: &[B]) -> io::Result<()>
where
    R: io::Read,
    W: io::Write,
    B: AsRef<[u8]>,

现在,我想对每个块应用另一个处理。我的图书馆也有一个 Reader 和一个 Writer 并应用自己的处理(尽管我可以根据需要更改界面)

问题是,是否有可能以某种方式在管道中执行这两个函数,以便一个块被处理两次?换句话说,我需要有一个 step1 的 Writer 才能成为 step2 的 Reader

我已经尝试在我的库中添加一个

FnMut
参数以增加对每个块进行后处理或预处理的可能性,但我不知道如何使用上面的 AhoCorasick 函数。

rust io closures
© www.soinside.com 2019 - 2024. All rights reserved.