返回时的正确使用寿命暗示将来会出现黑锈病

时间:2019-07-10 16:04:48

标签: rust lifetime

我正在使用chttp 0.5.0-alpha.1每晚加息的期货。我的客户端基本上包装了chttp::Client,并且是inner在结构上。

我正尝试通过以下方式进行请求

 pub fn get(&self, uri: Url) -> impl Future<Output = Result<Response<Body>, Errors>> {
        self.inner
            .get_async(uri.to_string())
            .map_err(|e| Errors::ResponseError(e.to_string()))
 }

为进一步扩展,self.innerchttp::Client的实例,而chttp的板条箱是版本0.5.0-alpha.1。我正在客户端上调用get_async方法。

但是出现了这个错误

cannot infer an appropriate lifetime
Note: ...can't outlive the anonymous lifetime #1 defined on the method body at 48:5
Help: you can add a constraint to the return type to make it last less than `'static` and match the anonymous lifetime #1 defined on the method body at 48:5

我能够通过给impl Future<...>赋予匿名生存期:impl Future<Output = Result<Response<Body>, Errors>> + '_来解决此问题。

为什么指定匿名生存期可以解决此问题?

0 个答案:

没有答案