Review generated weight conversion

from Iterators
Rust 1.98 advanced 6 min 4 issues to find

Review this generated weight-conversion helper.

Parse every input as kilograms, preserve order, return the first parse or overflow error, avoid an intermediate collection, and produce no output.

Rust
fn weights_in_grams(
    rows: &[&str],
) -> Result<Vec<u32>, String> {
    let parsed: Vec<u32> = rows
        .iter()
        .filter_map(|row| row.parse::<u32>().ok())
        .collect();

    let mut grams = Vec::new();
    for kilograms in parsed {
        let converted = kilograms * 1_000;
        println!("converted {kilograms}");
        grams.push(converted);
    }

    Ok(grams)
}

generated code is illustrative, not from any one model

Open in playground
Report an error