นอกเหนือจากความสามารถในการสร้างตัวอ้างอิงให้กับข้อมูลของ type ที่มีอยู่จริง ด้วยการใช้ตัวดำเนินการ &
แล้ว Rust มีอีกความสามารถหนึ่งนั่นคือการสร้าง โครงสร้าง reference-like (การอ้างอิงเสมือน) ที่มีชื่อเรียกว่า smart pointers
การอ้างอิง ในมุมมองที่สูงขึ้นไปอีก มันคือการเข้าถึง type หนึ่งได้จากอีก type หนึ่ง โดยที่ Smart pointer จะมีพฤติกรรมต่างไปจาก การอ้างอิงปกติ ตรงที่มันจะทำงาน ตามที่โปรแกรมเมอร์เขียนตรรกะให้นั่นเพราะว่า โปรแกรมเมอร์ - อย่างคุณที่แหล่ะ - คือสิ่งที่ ฉลาด ที่สุด
โดยทั่วไป smart pointers จะอิมพลีเมนต์ Trait เหล่านี้ Deref
, DerefMut
, และ Drop
เพื่อกำหนดทิศทางให้ ตรรกะว่าจะเกิดอะไรขึ้นเมื่อ struct พยายาม dereference ด้วยตัวดำเนินการ *
และ .