this post was submitted on 27 Sep 2023
190 points (97.5% liked)
Rust
5930 readers
26 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
If the matches are causing too much nesting/rightward drift, then that could be an indicator that you're doing something wrong.
If it's the opposite, then you're probably doing something right, except maybe the code needs some refactoring if there is too much clutter.
If there isn't much difference, then it's a matter of style. I for example sometimes prefer to match on
bool
s in some contexts because it makes things look clearer to me, despite it being not the recommended style. I'm also a proud occasional user ofbool::then()
andbool::then_some()
๐Also, if you find yourself often wishing some API was available for types like
bool
,Option
, andResult
, then you don't have to wish for long. Just write some utility extension traits yourself! I for example have methods likebool::err_if()
,bool::err_if_not()
,Option::none_or_else()
, and some more tailored to my needs methods, all available via extension traits.Macros can also be very useful, although some people go for them too early. So if everything else fails to declutter your code, try writing a macro or two.
And it's worth remembering, there is no general rule, other than if the code is understandable for you and works, then you're probably okay irregardless of style. It's all sugar after all, unless you're really doing some glaringly wrong stuff.