Would `Vec::into_boxed_slice` [1] be the answer here? It gives you a `Box<[Foo]>`, which doesn't have a capacity (it still knows its own length).
1: https://doc.rust-lang.org/std/vec/struct.Vec.html#method.int...
1: https://doc.rust-lang.org/std/vec/struct.Vec.html#method.int...