Trait nesneleri
Rust’ın dinamik dağıtım yolu: dyn Trait somut türü gizler ve metodu çalışma zamanında bir vtable’dan bulur.
Rust’taki jenerik kod normalde monomorfize edilir — derleyici her somut tür için ayrı bir kopya üretir; çağrılar doğrudan olur, ama ikili büyür. Bazen bu mümkün değildir: birkaç farklı şekil türü tutacak bir vektörün tek bir somut eleman türü olamaz. İşte burada Box<dyn Draw> devreye girer; her değer iki işaretçiyle temsil edilir — biri veriye, biri o türün metot gerçekleştirimlerinin tablosuna. Çağrı dolaylı olur ve satır içine alınamaz, ama kod tek kopya halinde bulunur. Her trait uygun değildir: nesne güvenliği kuralları, diğerlerinin yanında jenerik metotları dışlar; çünkü bir vtable sonsuz sayıda varyantla doldurulamaz.