You know you’re deep into Rust when: Option<Result<T, E>> no longer looks scary.
@rustaceans Well it is scarier than Result<Option<T,E>>.
@prma @rustaceans Nope, not scarier. Just for example:
1. You have (or do not have) optional connection to something (e.g. file, api-endpoint, db, etc) and on some level API looks like “get_me_thing”, so you optionally return result because connection can fail.
2. Getting table or row or anything from DB -> result with optional finding.
3. 1+2: optional result of optional data (finding) is totally ok too.

@boozook @rustaceans Often it comes from a bunch of results. So you have a vec of item each with different parsing items. Like the database you mentioned. Now you have to think about how to handle the errors. If you want to break as soon as the first error or gather them and combine them, and how.

On the other hand Result<Option<T>> usually does not come with that question. So it’s less scarier.

@boozook @rustaceans Pardon my drunk English.