orlp / slotmap

Slotmap data structure for Rust
zlib License
1.12k stars 70 forks source link

Non-copy values in slotmap on stable 1.49 🎉 #46

Closed Uriopass closed 3 years ago

Uriopass commented 3 years ago

With 1.49, ManuallyDrop in unions is coming on stable.

I see the code is already written using ManuallyDrop, which means that slotmap is already ready to be built on 1.49 and onwards! (I tested on beta) However, it is currently under the unstable feature flag, which also enables the TryReserve API that, sadly, is not stable yet.

What should be the course of action to enable users to use non-copy types on stable?

I propose to remove the Slottable trait entirely and release a 0.5.0 version of the crate since this would break backward compatibility.

Another proposition would be to keep the unstable feature flag with the same semantics, and introduce a new flag to specifically enable non-copy types.

I'd be happy to do the PR whichever way you prefer.

orlp commented 3 years ago

I'm waiting for the actual release before I do anything. Fear not, I will make slotmap require the least amount of features/dependencies as possible to function.

orlp commented 3 years ago

This is implemented and will be in the next version coming out soon.