Sen lisäksi, että voimme luoda referenssejä olemassa olevaan tyypitettyyn dataan &-operaattorilla, Rust antaa meille mahdollisuuden luoda referenssin kaltaisia structeja, joita kutsutaan smart pointereiksi.
Voimme ajatella referenssejä korkealla tasolla tyyppinä, joka antaa meille pääsyn toiseen tyyppiin. Smart pointerit eroavat tavallisista referensseistä käyttäytymisessään siten, että ne toimivat ohjelmoijan kirjoittaman sisäisen logiikan perusteella. Sinä — ohjelmoija — olet se smart-osa.
Yleensä smart pointerit toteuttavat traitit Deref, DerefMut ja Drop määrittääkseen logiikan sille, mitä tulisi tapahtua, kun rakenne dereferensoidaan operaattoreilla * ja ..