دستور الملكية
Rust

اقرأها من الجذر. كل سهم يعني "يُشتقّ مباشرة من". كل يعني "نفس النمط، سياق مختلف" (تكرار متباعد كاستعمال، لا كشرح).

                        ٠٠ الثبات افتراضًا + كل شيء تعبير
                                    │
                                    ▼
              ┌─────────────────────────────────────────┐
              │   البديهية ١ (٠١)      البديهية ٢ (٠٢)   │
              │   مالك واحد بالضبط     مشاركة XOR تعديل   │
              │   move / Copy / Drop    &T / &mut T       │
              └──────────────┬──────────────┬─────────────┘
                              │              │
                 ┌────────────┘              └────────────┐
                 ▼                                         ▼
         ٠٣ الأنواع الجبرية                        ٠٥ تسمية الزمن
         enum = اتحاد موسوم                        'a = اسم لعلاقة موجودة
         Option (⇒ لا NULL)                         عمر دالة / عمر بنية
         Result (⇒ لا استثناءات)                    قواعد الحذف الثلاث
         match exhaustive                            'static
                 │                                         │
                 ▼                                         │
         ٠٤ التجريد بلا ثمن                                │
         trait ⇒ قيد على generic                            │
         monomorphization (⇒ عكس erasure TS)                │
         static (impl T) ⟷ dynamic (dyn T)                   │
         self/&self/&mut self ⟷⟷⟷ [الثلاثية]                 │
                 │                                         │
                 └──────────────────┬──────────────────────┘
                                     ▼
                          ٠٦ خط الإنتاج
                          Fn/FnMut/FnOnce ⟷⟷⟷ [الثلاثية مجددًا: التقاط]
                          for x in v/&v/&mut v ⟷⟷⟷ [الثلاثية مرة ثالثة]
                          Iterator::next ⇒ Option (٠٣ يعمل هنا فعليًا)
                          كسل + صفر تخصيص (⇒ زيرو-كوست ٠٤ مطبَّقة)
                          UTF-8: char/String/chars()/char_indices()
                          ★ معلم: أداة بحث نصية (mini-grep)
                                     │
                 ┌───────────────────┴───────────────────┐
                 ▼                                         ▼
         ٠٧ تليين القوانين                          (تمهيد لـ) ٠٨
         Box<T>: تمليك في عنوان آخر                  البديهيتان تُطبَّقان
         Deref/DerefMut (⇒ &String→&str من ٠٢)         حرفيًا على الخيوط
         Rc<T>: البديهية ١ تتفاوض (مالك = مجموعة)      بلا أي قاعدة جديدة
         RefCell<T>: البديهية ٢ تتفاوض (فحص→تشغيل)
         Weak<T>: يكسر الدوائر (⇒ يفي بتحفظ ٠١)
         ★ معلم: شجرة/بنية ذاتية-الإشارة
                 │
                 ▼
         ٠٨ تزامن بلا خوف
         Send/Sync (سمتان تلقائيتان بلا طرق)
         Arc/Mutex ⟷ Rc/RefCell (نفس الشكل، ذرّي)
         thread::spawn ('static + Send ⇐ يُقرأ الآن بمعنى كامل)
         channels (mpsc) ⇐ move يحرس التزامن أيضًا
                 │
                 ▼
         ٠٩ كسر الختم
         unsafe = ٥ قدرات محدَّدة، لا إطفاء عام
         *const T / *mut T (بلا قواعد البديهية ٢)
         alloc/dealloc/Layout ⟷ malloc/free (C)
         ptr::write/read (بلا Drop زائف)
         ★★ المعلم الأكبر: MyVec<T> من الصفر
                 │
                 ▼
         ١٠ اللغة الثانية
         Future/Poll ⟷⟷⟷ Option/Result (نفس الشكل، "لاحقًا" لا "أبدًا")
         async fn ⇒ enum آلة حالة (٠٣ يعمل هنا أيضًا)
         executor خارج std (⇐ عكس قرار Node/libuv)
         Pin ⇐ يحرس ضد نقل (move، ٠١) لبنية ذاتية-الإشارة
         tokio::spawn ⟷ thread::spawn (مهمة خفيفة لا خيط نظام)
         ★ معلم: منفّذ مصغّر
         ★★★ الكابستون: خادم TCP متزامن (يدمج ٠٣+٠٦+٠٨+١٠ + الشبكات)

الأنماط المتكررة (لا تحفظها كقائمة — تعرّف عليها حين تظهر)

النمطأين ظهرلماذا نفس النمط
{تمليك، &، &mut}استقبال الطرق (٠٤)، التقاط الإغلاقات (٠٦)، أنماط for (٠٦)ثلاث طرق فقط للوصول لقيمة، مهما كان السياق النحوي
enum بفرعين: قيمة/غيابOption (٠٣)، Result (٠٣)، Poll (١٠)نفس الشكل يحل ثلاث مشاكل: غياب، فشل، تأخّر
Static مقابل Dynamic dispatchgenerics/trait (٠٤)، إغلاقات كـimpl Fn/dyn Fn (٠٦)نفس المقايضة: سرعة+تكاثر مقابل مرونة+تكلفة قفزة
فحص يتحرك بالزمنborrow checker (ترجمة، مجاني) → RefCell/Mutex (تشغيل، panic) → unsafe (لا فحص، UB)نفس الالتزام (لا alias+mutate معًا)، ثلاث مستويات ثقة مختلفة في من يثبته
توءمان خيط-واحد/متعدد-خيوطRcArc، RefCellMutex (٠٧، ٠٨)نفس الفكرة، نسخة ذرّية حين يتعدد المنفّذ الفعلي

جدول الإحالة لأصول خارج هذا المنهج

المفهوم هنامبني فوقمن منهج
ownership/Drop كانضباط مُثبَتmalloc/free اليدوي، أخطاء الذاكرة الثلاثةC — Holberton
enum/match/exhaustivenessdiscriminated unions، إغلاق neverTypeScript
generics/monomorphization مقابل erasuregenerics TS، varianceTypeScript
closure = كود+بيئةclosures JS، callbacks/hooksfullstack
C10K، event loop، libuv/epollمشكلة التزامن، Node = V8+libuvfullstack
الكابستون: TCP، sockets، منافذبروتوكولات النقل، أدوات السلك (nc)Network_Holberton