كائنات سمات Rust مع حدود متعددة: قيد مفاجئ
2025-03-27
تتناول هذه المقالة أسباب القيود المفروضة على الحدود المتعددة للسمات في كائنات السمات في Rust. يكتشف الكاتب خطأً في الترجمة عند محاولة استخدام قيود سمات متعددة (مثل `Mammal + Clone`) في وقت واحد داخل كائن سمة. تستكشف المقالة الآليات الكامنة وراء الإرسال الديناميكي في Rust و C ++، وتقارن تنفيذاتها لجدول vtable. وتفحص استخدام ميراث السمات لتجاوز هذا القيد وقيوده المتأصلة. في النهاية، يقترح الكاتب أن السماح بحدود سمات متعددة يتطلب مؤشرات vtable متعددة، على الرغم من أن هذا يضيف بعض التكرار، إلا أنه يحل مشاكل تحويل الأنواع بكفاءة.