Code Demo · Rust · Iterator Pipeline

rust
#[derive(Debug)]
struct Reading {
    sensor: &'static str,
    value: f64,
}

fn main() {
    let readings = vec![
        Reading { sensor: "west", value: 21.5 },
        Reading { sensor: "east", value: 18.0 },
        Reading { sensor: "north", value: 24.2 },
    ];

    let normalized: Vec<_> = readings
        .iter()
        .filter(|reading| reading.value >= 20.0)
        .map(|reading| (reading.sensor, (reading.value * 10.0).round() / 10.0))
        .collect();

    println!("{:?}", normalized);
}
511 characters21 lines< 1.5 KB