36
you are viewing a single comment's thread
view the rest of the comments
[-] BB_C@programming.dev 0 points 4 months ago

From my experience, when people say “don’t unwrap in production code” they really mean “don’t call panic! in production code.” And that’s a bad take.

What should be a non-absolutest mantra can be bad if applied absolutely. Yes.

Annotating unreachable branches with a panic is the right thing to do; mucking up your interfaces to propagate errors that can’t actually happen is the wrong thing to do.

What should be a non-absolutest mantra can be bad if applied absolutely.

[-] cbarrick@lemmy.world 1 points 4 months ago

You talk about "non-absolutist," but this thread got started because the parent comment said "literally never."

I am literally making the point that the absolutist take is bad, and that there are good reasons to call unwrap in prod code.

smdh

[-] BB_C@programming.dev -1 points 4 months ago

Don't get angry with me my friend. We are more in agreement than not re panics (not .unwrap(), another comment coming).

Maybe I'm wrong, but I understood 'literally' in 'literally never' in the way young people use it, which doesn't really mean 'literally', and is just used to convey exaggeration.

[-] taladar@sh.itjust.works 2 points 4 months ago

No, I actually meant it as in the traditional meaning of literally. As in

[lints.clippy]
unwrap_used = "warn"
expect_used = "warn"

along with a pre-commit hook that does

cargo clippy -D warnings

(deny warnings).

There are always better ways to write an unwrap, usually via pattern matching and handling the error cases properly, at the very least logging them.

this post was submitted on 24 Jun 2024
36 points (90.9% liked)

Rust

6005 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

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