this post was submitted on 17 Jan 2022
11 points (92.3% liked)

Rust Programming

8161 readers
6 users here now

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] nutomic@lemmy.ml 3 points 2 years ago (1 children)

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.

[โ€“] MadScientist@sopuli.xyz 0 points 2 years ago

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