, 8 tweets, 2 min read Read on Twitter
Spending the weekend rewriting some early Rust projects and OMG some of this error handling is cringy. I've learned a lot about error handling in #rustlang since:
match & if let statements are easily nested into infinity - this style puts the "successful path" first, but its hard to debug and folks coming from other langs will curse you.
A lot of matches with if/else nesting can be eliminated with match guards -- easy to forget they exist, but they are much more concise.
Result and Option type have many combination & map methods that can reduce/eliminate branching code: unwrap_or_else, and_then, map_err, etc. This can be abused, but dem epic one-liners tho.
Result is_ok & is_err methods reduce the result to a bool. If you don't care about the value of Ok/Err, it concisely frees you from types. Option similarly has is_some & is_none.
Options can be turned into a Result type using ok_or/ok_or_else methods, allowing for the ? postfix, further reducing boilerplate.
Option and Result have an iter method. Combined with filter or filter_map, you can apply specific value validation in the same statement, reducing need for mutability in many places.
Some of this stuff would be better served by a code example. Probably worth a dev.to post 🤯
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Sabree Blackmon
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!