Thank goodness for LLMs
>The author's core message is about breaking free from a lifelong pattern of tying self-worth to constant productivity and output, realizing that true creativity and well-being require intentional rest and "revery" (contemplation/dreaming), rather than relentless striving.
The error in question:
> the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
It literally tells you why it doesn't work, wtf do you want?
In general I think there is a lack of intermediate Rust material that teaches you common design patterns, idiomatic Rust, and so on.
Even I (someone who's written hundreds of thousands of fairly complex Rust code) learnt about the let-else style solution from this article =).
A good way to get people comfortable with the semantics of the language before the borrow checker is to encourage them to clone() strings and structs for a bit, even if the resulting code is not performant.
Once they dip their toes into threading and async, Arc<Lock<T>> is their friend, and interior mutability gives them some fun distractions while they absorb the more difficult concepts.
What's changed since 2015 is that we ironed out some of the wrinkles in the language (non-lexical lifetimes, async) but the fundamental mental model shift required to think in terms of ownership is still a hurdle that trips up newcomers.
[1] https://docs.rs/httpmock/latest/httpmock/