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() });
}
```