Полагаю, вы хотели что-то более похожее на это?
use futures::stream::StreamExt;
use futures::sink::SinkExt;
#[tokio::main]
async fn main() {
// works
let mut work = futures::stream::repeat(5);
let mut drain = futures::sink::drain();
match drain.send(work.next()).await {
Ok(_r) => println!("Done"),
Err(_e) => println!("Error"),
};
// doesn't work
futures::stream::repeat(Ok(5)).forward(futures::sink::drain());
}
Как показывает ошибка (немного сбивающая с толку), повторный вызов в этом случае должен принимать аргумент Result
.