شرح شامل لـ Cell والأنواع ذات العد المرجعي في Rust
أنا مبتدئ في Rust وأحاول فهم كيفية عمل Cell و RefCell و Rc و Arc. في التوثيق الرسمي تم شرحها، لكنني أفتقر إلى الصورة الكاملة - كيف ترتبط هذه الأنواع ببعضها البعض ومتى يتم استخدام كل منها.\n\nإليك مثال محدد أربكني. أحاول إنشاء رسم بياني حيث يمكن للعُقد أن تشير إلى بعضها البعض. لدي هيكل Node:\n\n```rust\nstruct Node {\n value: i32,\n children: Vec,\n}\n```\n\nلكنني لا أستطيع إضافة مراجع دائرية، لأن الملكية تتطلب أن يكون لكل عقدة مالك واحد. جربت استخدام المراجع مع زمن الحياة:\n\n```rust\nstruct Node<'a> {\n value: i32,\n children: Vec<&'a Node<'a>>,\n}\n```\n\nلكن المترجم يشتكي من زمن الحياة ولا أفهم كيفية إصلاح ذلك. ثم قرأت عن Rc، لكن عندما حاولت