struct User
{
name: &'static str,
age: u32,
active: bool,
}
fn main()
{
let users = vec![
User { name: "Alice", age: 30, active: true },
User { name: "Bob", age: 25, active: false },
User { name: "Charlie", age: 35, active: true },
User { name: "Diana", age: 28, active: true },
User { name: "Eve", age: 22, active: false },
];
let mut active: Vec<&User> = users.iter()
.filter(|u| u.active)
.collect();
active.sort_by_key(|u| u.name);
println!("{}", active.iter().map(|u| u.name).collect::<Vec<_>>().join(", "));
let avg = active.iter().map(|u| u.age).sum::<u32>() as f64 / active.len() as f64;
println!("Průměrný věk: {}", avg);
}