Как указать параметры времени жизни в связанном типе?

У меня есть эта черта и простая структура:

use std::path::{Path, PathBuf};

trait Foo {
    type Item: AsRef<Path>;
    type Iter: Iterator<Item = Self::Item>;

    fn get(&self) -> Self::Iter;
}

struct Bar {
    v: Vec<PathBuf>,
}

Я хотел бы реализоватьFoo черта дляBar:

impl Foo for Bar {
    type Item = PathBuf;
    type Iter = std::slice::Iter<PathBuf>;

    fn get(&self) -> Self::Iter {
        self.v.iter()
    }
}

Однако я получаю эту ошибку:

error[E0106]: missing lifetime specifier
  --> src/main.rs:16:17
   |
16 |     type Iter = std::slice::Iter<PathBuf>;
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected lifetime parameter

Я не нашел способа указать время жизни внутри этого связанного типа. В частности, я хочу выразить, что итератор не может пережитьself продолжительность жизни.

Как мне изменитьFoo черта, илиBar черта реализации, чтобы сделать эту работу?

Ржавая детская площадка

Ответы на вопрос(3)

Ваш ответ на вопрос