Persian Rug - It really ties the Rust room together (www.collabora.com)
from snaggen@programming.dev to rust@programming.dev on 22 Aug 2023 05:09
https://programming.dev/post/1993776

#rust

threaded - newest

Zyansheep@programming.dev on 22 Aug 2023 07:08 next collapse

So… basically a nicer API for arena or vector-based allocation where you store the index instead of a pointer?

somegeek@programming.dev on 22 Aug 2023 07:31 next collapse

As a Persian, I approve this crate

sirdorius@programming.dev on 22 Aug 2023 08:49 next collapse

That library is dead for more than a year. Maintainer even deleted the repository. But the article is still a good read.

snaggen@programming.dev on 22 Aug 2023 11:53 next collapse

Weird, a blog post by Collabora about a crate by Collabora, that no longer is availabe? Well, the crate seems to be, but not the code. So, what is going on here?

sugar_in_your_tea@sh.itjust.works on 22 Aug 2023 12:32 next collapse

The code is left as an exercise for the reader.

Anders429@lemmy.world on 22 Aug 2023 15:32 collapse

You can download the code directly from crates.io still.

CameronDev@programming.dev on 22 Aug 2023 12:25 next collapse

persian-rugpulled :(

snaggen@programming.dev on 22 Aug 2023 15:44 collapse

They have fixed this and the code is available now.

Vorpal@programming.dev on 22 Aug 2023 22:03 collapse

Seems to be a wrapper around implementing the “index into data store”-pattern (not sure if there is a better name), but without support for removal from said data store.

From a quick glance I don’t really see what this gives you that wouldn’t also be quite easy with a manual implementation. And then you avoid the proc macro compile time overhead as well.

aloso@programming.dev on 26 Aug 2023 23:58 collapse

It gives you more type safety, because you use a ProxyᐸFooᐳ instead of just usize.

Vorpal@programming.dev on 30 Aug 2023 19:17 collapse

In my manual implementation I would assume you would use a newtype, so not really relevant.