• nutomic@lemmy.mlM
    link
    fedilink
    arrow-up
    3
    ·
    3 years ago

    I think she is talking about this functionality which already exists. It is not very intuitive though.

    let res = my_collection
    .iter()
    .map(|x| method_that_returns_result(x))
    .collect::<Result<Vec<T>, Error>>()?;
    

    So it turns a Vec<Result, Error> into Result<Vec<T>, Error>, and you can turn it into Vec<T> simply with ?. Otherwise you would probably need a for loop.

    • Mad@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      do you mean Vec<Result<T, Error>>? why would an error type be the second type argument for a Vec?