Правильный срок службы при возврате в будущем ночью - PullRequest
0 голосов
/ 10 июля 2019

Я использую фьючерсы с ночной ржавчиной с 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>> + '_.

Почему указание анонимного времени жизни решает проблему?

...