Я использую фьючерсы с ночной ржавчиной с 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.inner
является экземпляром chttp :: 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>> + '_
.
Почему указание анонимного времени жизни решает проблему?