Selain kemampuan untuk membuat referensi ke data bertipe yang sudah ada menggunakan operator &, Rust memberi kita kemampuan untuk membuat struct yang mirip referensi, yang disebut smart pointer.
Kita dapat menganggap referensi, pada tingkat tinggi, sebagai sebuah tipe yang memberi kita akses ke tipe lain. Smart pointer berbeda dari referensi biasa dalam perilakunya, karena mereka beroperasi berdasarkan logika internal yang ditulis oleh programmer. Kamu — sang programmer — adalah bagian smart-nya.
Biasanya smart pointer mengimplementasikan trait Deref, DerefMut, dan Drop untuk menentukan logika tentang apa yang harus terjadi ketika struktur tersebut didereferensikan dengan operator * dan ..