Persian Rug - It really ties the Rust room together

https://www.collabora.com/news-and-blog/blog/2023/08/09/persian-rug-it-really-ties-the-rust-room-together/

21 points · 11 comments · view on lemmy.world

11 Comments

sirdorius@programming.dev · 6 pts · 3y (5 replies)

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

CameronDev@programming.dev · 8 pts · 3y

persian-rugpulled :(

snaggen@programming.dev · 1 pts · 3y

They have fixed this and the code is available now.

snaggen@programming.dev · 1 pts · 3y (2 replies)

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 · 7 pts · 3y

The code is left as an exercise for the reader.

Anders429@lemmy.world · 2 pts · 3y

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

Zyansheep@programming.dev · 3 pts · 3y

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

Vorpal@programming.dev · 3 pts · 3y (2 replies)

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 · 1 pts · 3y (1 reply)

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

Vorpal@programming.dev · 1 pts · 3y

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

somegeek@programming.dev · 1 pts · 3y

As a Persian, I approve this crate