Comment implémenter les traits Iterator et IntoIterator pour une structure simple en Rust ?
Bonjour à tous ! J'ai commencé à apprendre Rust et j'ai rencontré un problème lors de l'implémentation de mes propres itérateurs. J'ai une structure simple `BookCollection` qui stocke une liste de livres. Je veux que cette structure puisse être utilisée dans une boucle `for`, ainsi que transmise à des fonctions qui attendent des itérateurs. Mais le compilateur génère des erreurs.
Voici mon code :
```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() });
collection.add_book(Book { title: "Dune".to_string(), author: "Herbert".to_string() });
// Je veux faire ceci :
for book in collection {
println!("{} by {}", book.titl