لغة البرمجة Rust
تمهيد
مقدمة
1.
البداية
1.1.
التنصيب
1.2.
اهلا بالعالم !
1.3.
اهلا cargo !
2.
برمجة لعبة تخمين
3.
مفاهيم برمجية مشتركة
3.1.
المتغيرات و التغيرية
3.2.
انواع البيانات
3.3.
الدوال
3.4.
التعليقات
3.5.
تسلسل التنفيذ
4.
فهم الملكية
4.1.
ما هي الملكية ؟
4.2.
المراجع و الاستعارة
4.3.
نوع الشريحة
5.
استخدام التراكيب لتنظيم البيانات المترابطة
5.1.
تعريف وتهيئة التراكيب
5.2.
مثال علي برنامج يستخدم التراكيب
5.3.
صياغة الدالة التابعة
6.
التعدادات و مطابقة الانماط
6.1.
تعريف التعداد
6.2.
تسلسل التنفيذ باستخدام تعبير match
6.3.
تسلسل تنفيذ مختصر باستخدام if let
7.
إدارة المشاريع الكبيرة باستخدام الحزم، والصناديق، والوحدات
7.1.
الحزم والصناديق
7.2.
تعريف الوحدات للتحكم في النطاق والخصوصية
7.3.
المسارات للإشارة إلى عنصر في شجرة الوحدة
7.4.
إدخال المسارات في النطاق باستخدام الكلمة الرئيسية use
7.5.
فصل الوحدات إلى ملفات مختلفة
8.
التجميعات الشائعة
8.1.
تخزين قوائم القيم باستخدام المتجهات
8.2.
تخزين النصوص المشفرة بتنسيق UTF-8 باستخدام السلاسل النصية
8.3.
تخزين المفاتيح مع القيم المرتبطة في جداول التجزئة
9.
معالجة الاخطاء
9.1.
الاخطاء الغير قابلة للحل باستخدام الماكرو panic!
9.2.
الاخطاء القابلة للحل باستخدام Result
9.3.
هل يجب استخدام panic! أم لا
10.
الانواع المعممة,السمات, ودورات الحياة
10.1.
الانواع المعممة
10.2.
السمات:لتعريف سلوك مشترك
10.3.
التحقق من المراجع باستخدام دورات الحياة
11.
كتابة الاختبارات اﻵلية
11.1.
كيفية كتابة الاختبارات
11.2.
التحكم في كيفية تشغيل الاختبارات
11.3.
تنظيم الاختبارات
12.
مشروع الإدخال/الإخراج: بناء برنامج سطر الأوامر
12.1.
الحصول علي العوامل من سطر الاوامر
12.2.
قراءة ملف
12.3.
اعادة هيكلة الكود لتحسين النمطية و معالجة اﻷخطاء
12.4.
تطوير عمل المكتبة باستخدام التطوير المقتاد بالاختبار
12.5.
العمل مع متغيرات البيئة
12.6.
كتابة رسائل الخطأ إلى الخطأ القياسي بدلاً من الإخراج القياسي
13.
ميزات لغة البرمجة الوظيفية: الإغلاقات والمكررات
13.1.
الإغلاقات: الدوال المجهولة التي تلتقط بيئتها
13.2.
معالجة سلسلة من العناصر باستخدام المكررات
13.3.
تحسين مشروع الإدخال/الإخراج الخاص بنا
13.4.
مقارنة الأداء: الحلقات مقابل المكررات
14.
المزيد حول Cargo و Crates.io
14.1.
تخصيص البُنيات باستخدام ملفات الإصدار في Rust
14.2.
نشر صندوق إلى Crates.io
14.3.
مساحة عمل Cargo
14.4.
تثبيت الملفات التنفيذية الثنائية من Crates.io باستخدام cargo install
14.5.
توسيع استخدامات Cargo عن طريق اوامر مخصصة
15.
المؤشرات الذكية
15.1.
استخدامBox<T> للإشارة إلى البيانات في الكومة
15.2.
معاملة المؤشرات الذكية مثل المراجع العادية باستخدام خاصية Deref
15.3.
تنفيذ كود عند تحرير الذاكرة cleanup باستخدام السمة Drop
15.4.
المؤشر Rc<T> الذكي واستخدامه للاشارة إلي عدد المراجع
15.5.
RefCell<T> و نمط التغيير الداخلي
15.6.
حلقات المراجع قد تؤدي الي تسريب الذاكرة
16.
التواقت بلا خوف
16.1.
استخدام الخيوط لتشغيل الكود بطريقة متزامنة
16.2.
استخدام تمرير الرسائل لنقل البيانات بين الخيوط
16.3.
تواقت الحالة المشتركة
16.4.
التواقت القابل للتوسعة باستخدام خصائص Sync و Send
17.
ميزات البرمجة الكائنية في Rust
17.1.
خصائص اللغات الكائنية
17.2.
استخدام كائنات السمات التي تسمح بقيم من أنواع مختلفة
17.3.
تنفيذ نمط تصميمي كائن التوجه
18.
الأنماط والمطابقة
18.1.
جميع الأماكن التي يمكن استخدام الأنماط فيها
18.2.
إمكانية الفشل في المطابقة: ما إذا كان النمط قد يفشل في المطابقة
18.3.
بنية الأنماط
19.
ميزات متقدمة
19.1.
Rust غير اﻵمنة
19.2.
السمات المتقدمة
19.3.
انواع متقدمة
19.4.
الدوال و المغلفات المتقدمة
19.5.
الماكروز
20.
المشروع الخير: بناء خادم ويب متعددالخيوط
20.1.
بناء خادم ويب احادي الخيط
20.2.
تحويل الخادم الاحادي الي خادم متعدد الخيوط
20.3.
الاغلاق الناعم والتنظيف
21.
الملحق
21.1.
أ - الكلمات المحجوزة
21.2.
ب - المعاملات و الرموز
21.3.
ج - السمات القبلة للاشتقاق
21.4.
د - بعض ادوات التطوير المفيدة
21.5.
هـ - الاصدارات
21.6.
و - ترجمات للكتاب
21.7.
كيف يتم تطوير Rust و Rust "Nightly"
Light
Rust
Coal
Navy
Ayu
لغة البرمجة Rust
Appendix
The following sections contain reference material you may find useful in your Rust journey.