Avatar ·

كيفية إنشاء حزمة في Rust تحتوي على مكتبة (lib) وملف تنفيذي (bin)؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Rust وأحاول فهم تنظيم المشاريع. لدي مهمة: أريد كتابة أداة صغيرة للعمل مع ملفات CSV. لكن في نفس الوقت، أريد أن يكون المنطق الأساسي (التحليل، التصفية) قابلاً لإعادة الاستخدام في مشاريع أخرى كمكتبة. حاليًا، مشروعي يبدو هكذا: ``` my_project/ ├── Cargo.toml ├── src/ │ └── main.rs ``` في `main.rs`، كتبت كلاً من التحليل وعرض النتائج. هذا غير مريح: إذا أردت استخدام نفس المحلل في مشروع آخر، سأضطر لنسخ الكود. قرأت أنه في Rust يمكن عمل حزمة تحتوي على `lib.rs` (مكتبة) و `main.rs` (ملف تنفيذي). لكنني لا أفهم كيفية تكوين ذلك بشكل صحيح. في `Cargo.toml`، لا أرى تعليمات واضحة. كيف يعرف Cargo أن لدي ملفين مستهدفين؟ هل يمكنني من `main.rs` استدعاء دوال من `lib.rs`؟ وكيف أنظم هيكل المجلدات بشكل صحيح؟ هل أحتاج إلى تحديد شيء في `Cargo.toml`؟ من فضلكم، أرشدوني إلى كيفية القيام بذلك بشكل صحيح. مثال