Avatar ·

Como implementar os traits Iterator e IntoIterator para uma estrutura simples em Rust?

Olá a todos! Comecei a estudar Rust e me deparei com um problema ao implementar iteradores próprios. Tenho uma estrutura simples `BookCollection` que armazena uma lista de livros. Quero que essa estrutura possa ser usada em um loop `for`, bem como ser passada para funções que esperam iteradores. Mas o compilador está gerando erros. Aqui está meu código: ```rust struct Book { title: String, author: String, } struct BookCollection { books: Vec, } impl BookCollection { fn new() -> Self { BookCollection { books: Vec::new() } } fn add_book(&mut self, book: Book) { self.books.push(book); } } fn main() { let mut collection = BookCollection::new(); collection.add_book(Book { title: "1984".to_string(), author: "Orwell".to_string() }); } ```