this post was submitted on 31 Jan 2026
197 points (99.0% liked)

Programmer Humor

29035 readers
1074 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] Ephera@lemmy.ml 3 points 1 day ago (1 children)

Ah yeah, via deref coercion, which is also called "auto-dereferencing" at times. Not to be confused with "auto-referencing", which is also a thing^1.

You can do some wild shit with deref coercion. And when I say "wild", I guess, I'm talking about the most normal thing for Java devs, because well, it's a lot like inheritance. ๐Ÿ˜…

Basically, this concept of being able to pass &String into a parameter that takes &str also applies to the self parameter. Or in other words, methods implemented on str can also be called on String, as if String extends str.
And well, obviously you can also make use of that yourself, by writing your own wrapper type. You can even "override" existing methods in a sense by re-defining them in the wrapper type.

I had to play around a bit with it myself, so here's a playground: https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=af65ed396dec88c8406163acaa1f8f8d

[โ€“] Ephera@lemmy.ml 4 points 1 day ago

Welp, I posted my hot take that impl Deref is similar to inheritance as a meme in !rust@lemmy.ml: https://lemmy.ml/post/42514248

Now, let's see how many feathers get ruffled. ๐Ÿ™ƒ