这篇文章上次修改于 763 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

filter 参数一般是个同步闭包,如果需要传入异步函数,可以使用 try_filter,条件使用 future::ready()

   let mut chunk_stream: BoxedChunkStream = Box::new(
        stdin_stream()
            .parse_ebml()
            .chunk_webm()
            .map_ok(move |chunk| timecode_fixer.process(chunk))
            .try_filter(move |chunk| future::ready(chunk.overlaps(start_time, stop_time))),
    );