String implements Deref<Target=str>, making it conceptually an owning pointer to a str, even though it doesn't literally have a *mut str field. Similarly, a Vec<T> is a type of (smart) pointer to [T].
4 Likes