bytemuck allows safe transmuting of simple types with no uninhabited values. I would be really useful if hybrid-array implemented it the same way bytemuck implements it on native constant-sized arrays. Obviously, the dependency would be optional.
How ?
This is the impl for the standard generic array, it should be trivial to adapt:
unsafe impl<T, const N: usize> Pod for [T; N] where T: Pod {}
Implementing it would instantly make hybrid arrays of int/bytes/etc. safely transmutable with other kinds of arrays at no cost, including non-standard ones
Why not ?
It adds a dependency
It's always possible to get access to the underlying &[T; N]/&mut [T; N] (and vice-versa) using normal hybrid_array::Array methods and give these to bytemuck instead. It adds one "level" of conversion, which is acceptable.
bytemuck
allows safe transmuting of simple types with no uninhabited values. I would be really useful ifhybrid-array
implemented it the same waybytemuck
implements it on native constant-sized arrays. Obviously, the dependency would be optional.How ?
This is the impl for the standard generic array, it should be trivial to adapt:
source: https://github.com/Lokathor/bytemuck/blob/005ee3254fdfa63d67d024cfc598319331dab0cb/src/pod.rs#L87
Why ?
bytemuck
is quite popular (3.5M downloads/month, 600+ GH stars)Why not ?
&[T; N]
/&mut [T; N]
(and vice-versa) using normalhybrid_array::Array
methods and give these tobytemuck
instead. It adds one "level" of conversion, which is acceptable.