这里 MRE:https://gist.github.com/legendiguess/776127783253c6e597be85bc122074f6
我收到以下错误:
error: higher-ranked lifetime error
--> src/main.rs:27:28
|
27 | ) -> Result<(), Error> {
| ____________________________^
28 | | let r = tokio_util::io::StreamReader::new(s);
29 | | let d = do_stuff(&self.s, r).await.unwrap();
30 | | Ok(())
31 | | }
| |_____^
|
= note: could not prove `Pin<Box<[async block@src/main.rs:27:28: 31:6]>>: CoerceUnsized<Pin<Box<(dyn futures::Future<Output = Result<(), std::io::Error>> + std::marker::Send + 'd)>>>`
有人可以解释这个错误以及如何修复它吗?
我尝试添加更多生命周期,将
Impl Stream
更改为 Pin<Box<dyn Stream>>
但没有成功
更新:事实证明,这在夜间成功编译,但在最新的稳定版本(1.70.0)上仍然失败
请参阅以下 Rust 问题。有一些相关的问题,但这是特定于异步的。 https://github.com/rust-lang/rust/issues/102211