Ajatellaan muutamia smart pointereita, jotka olemme jo nähneet, kuten Vec<T> ja String.
Vec<T> on smart pointer, joka vain omistaa tavuista koostuvan muistialueen. Rust-kääntäjällä ei ole aavistustakaan, mitä näissä tavuissa on. Smart pointer tulkitsee, mitä tarkoittaa hakea elementtejä hallinnoimastaan muistialueesta, seuraa, mistä tietorakenteet näiden tavujen sisällä alkavat ja loppuvat, ja lopulta dereferensoi raa'an osoittimen tietorakenteiksi siistiksi ja ergonomiseksi rajapinnaksi käytettäväksemme (esim. my_vec[3]).
Vastaavasti String seuraa tavuista koostuvaa muistialuetta ja rajoittaa ohjelmallisesti siihen kirjoitettavan sisällön aina validiksi utf-8:ksi, sekä auttaa dereferensoimaan tuon muistialueen &str-tyypiksi.
Molemmat nämä tietorakenteet käyttävät raakojen osoittimien unsafe-dereferensointia tehtävänsä suorittamiseen.
Muistin yksityiskohdat: