Let's look at the structure of Vec<T>
marma.dev·23h·
Discuss: r/rust

A conspiracy!

As I was reading the Rust API documentation for std::vec::Vec, something interesting caught my eye in the Vec struct definition.

pub struct Vec<T, A = Global>
where
A: Allocator,
{ /* private fields */ }

I am looking at you { /* private fields */ } ! “What are you trying to hide from me?” I thought. Was I being sucked into a grand conspiracy? The documentation gives no hints as to what these fields are other than giving us a visual representation of the data structure:

ptr      len  capacity
+--------+--------+--------+
| 0x0123 |      2 |      4 |
+--------+--------+--------+
|
v
Heap   +--------+--------+--------+--------+
|    'a' |    'b' | uninit | uninit |
+--------+--------+---...

Similar Posts

Loading similar posts...