Sto applicando una chiusura sull’iteratore e voglio usare stable, quindi voglio restituire un Iterator
scatola. Il modo più ovvio per farlo è il seguente:
struct Foo; fn into_iterator(myvec: &Vec) -> Box<Iterator> { Box::new(myvec.iter()) }
Ciò non riesce perché il verificatore del prestito non può dedurre le vite appropriate.
Dopo alcune ricerche, ho trovato il modo corretto per restituire un Iterator? , che mi ha portato ad aggiungere + 'a
:
fn into_iterator(myvec: &'a Vec) -> Box<Iterator + 'a> { Box::new(myvec.iter()) }
Ma non capisco