Rust สนับสนุน polymorphism ด้วย traits โดย Traits จะช่วยให้เราเชื่อมโยงกลุ่มของเมธอด เข้ากับ struct type ได้
ขั้นแรกเราต้องกำหนดลักษณะเฉพาะของเมธอดใน trait ก่อน:
trait MyTrait {
    fn foo(&self);
    ...
}
เมื่อมี struct ใดต้องการอิมพลีเมนต์ trait มันจะสร้างสัญญาขึ้นมาเพื่ออนุญาต ให้เราใช้วิธีการโต้ตอบกับ struct แบบที่ trait กำหนดไว้ (จากตัวอย่าง &dyn MyTrait)
โดยไม่ต้องรู้เลยว่า type ที่แท้จริงของมันคืออะไร
วิธีการทำให้ struct ใช้เมธอดของ traits ทำภายในบล็อกแบบนี้:
impl MyTrait for MyStruct { 
    fn foo(&self) {
        ...
    }
    ... 
}