The views are not for this indeed. But if you're not allocating your buffer most likely comes from a `heapless::Vec` somewhere, and you can get a view pointing to it rather easily, so instead of allocating a `[MaybeUninit; N]` you'd directly allocate a `Vec`. But yes this is a bit less flexible. The storage abstraction can probably also abstract over a `&mut [MaybeUninit]`. But that would be less pratctical that the `View` API overall, since you'd loose the ability to convert between the different versions of the `Vec`: - `Vec` is essentially `VecInner<[MaybeUninit; N]>` - `VecView` is essentially `VecInner<[MaybeUninit]>` - `VecSlice<'buffer, T>` would be `VecInner<&' mut [MaybeUninit]>`. This would work, but you would not be able to obtain a `VecSlice` from an existing `Vec`. There are also some niceties that you wouldn't have (especially re-borrowing).