Except that you canāt call all the methods like push since you donāt have a &mut Vec. Iām pretty sure that @tmccombs is right:
impl<T> From<Vec<T>> for Pin<Vec<T>> { /* ... */ }
is valid (using @withoutboatsās new API). I donāt think this should be restricted to Box<[T]>, since Vec can provide a lot more, in addition to not requiring a reallocation on creation. Going through the list of methods (just those on Vec, not those on []), it seems to me that clear, truncate, and set_len should work without modification on Pin<Vec> and push, append, resize, resize_with, resize_default, and extend_from_slice can work if they are modified to return errors instead of reallocating when the Vec is at capacity.
It definitely is a more niche use case, and I donāt think it would ever be possible to justify a standalone PinVec type in the standard library, but this is one of my favorite aspects of @withoutboatsās new API: it allows for these more obscure cases without extra work.