Re dereferences, graphically the difference between &[T]
and &Vec<T>
is[1]
+---+---+---+---+---+---+---+---+
| Pointer | Length | &[T] (or &str)
+---+---+---+---+---+---+---+---+
|
V
+---+---+---+---+---+---+---+---+
| D | A | T | A | . | . | . | ...... [T] (or str)
+---+---+---+---+---+---+---+---+
^
|
+---+---+---+---+---+---+---+---+---+---+---+---+
| Pointer | Length | Capacity | Vec<T> (or String)
+---+---+---+---+---+---+---+---+---+---+---+---+
^
|
+---+---+---+---+
| Pointer | &Vec<T> (or &String)
+---+---+---+---+
order of fields is not guaranteed ↩︎