this post was submitted on 26 Feb 2025
47 points (89.8% liked)

Rust Programming

8546 readers
10 users here now

founded 5 years ago
MODERATORS
 
top 7 comments
sorted by: hot top controversial new old
[โ€“] palebluethought@lemmy.world 18 points 2 weeks ago

You see, a monad is like a burrito...

[โ€“] ubik@fedi.turbofish.cc 7 points 2 weeks ago (1 children)

@Ephera you have to be a connoisseur to understand this one ๐Ÿ™‚

[โ€“] Nibodhika@lemmy.world 5 points 2 weeks ago (2 children)

Care to explain for the uninitiated like me? It feels like a meme, but conceptually an Option is very different from a Result, maybe I'm overthinking but to me an Option None means no action was taken (e.g. a function that runs every loop to take an action every second will return None most times and Some when it executes), whereas an Ok(None) means an action was taken and it has nothing to return (e.g. a function that safely reads a value from a JSON file, it didn't failed reading the file so it's an Ok, but the value wasn't there so it's None).

[โ€“] SWW13@lemmy.brief.guru 11 points 2 weeks ago (1 children)

You can use transpose() to go from Option<Result<T>> to Result<Option<T>> and vice versa.

The "meme" is a trans pride flag and a human pose.

[โ€“] howrar@lemmy.ca 8 points 2 weeks ago

Ah, so a trans pose.

Nice.

[โ€“] badmin@lemm.ee 4 points 2 weeks ago

It's just a "joke" about the method name.

[โ€“] RustyNova@lemmy.world 4 points 2 weeks ago

It's super useful for TryStreams with next(). I often want to ? the result up, so that I can have a clean item in my while let loop