struct User {
name: String,
email: String,
}
struct UserManager {
users: Vec<User>,
}
impl UserManager {
fn find_user_by_email(&self, email: &str) -> Option<&User> {
self.users.iter().find(|user| user.email == email)
}
}
fn main() {
let user1 = User {
name: "Alice".to_string(),
email: "alice@example.com".to_string(),
};
let user2 = User {
name: "Bob".to_string(),
email: "bob@example.com".to_string(),
};
let mut user_manager = UserManager {
users: vec![user1, user2],
};
if let Some(user) = user_manager.find_user_by_email("alice@example.com") {
println!("Found user: {} - {}", user.name, user.email);
} else {
println!("User not found");
}
}