أنت تقوم بإنشاء أداة سطر أوامر تستبدل كلمة أساسية محددة في سلسلة أوامر برقم إصدار الحزمة. ومع ذلك، فقد واجهت مشكلة في مقتطف الشفرة الذي يلزم إصلاحه.

تتم كتابة مقتطف التعليمات البرمجية بلغة Rust، ويتكون من كتلة شرطية تحاول العثور على كلمة رئيسية، ممثلة بـ `&VERSION`، في سلسلة الأمر، `cmd_str`. إذا تم العثور على الكلمة الأساسية، فإنه يتحقق ما إذا كان إصدار الحزمة متاحًا. في حالة وجود إصدار الحزمة، فإنه يستبدل الكلمة الأساسية في سلسلة الأمر بإصدار الحزمة المقابل. وإلا فإنه يلقي خطأ.

وتتمثل مهمتك في تحديد المشكلة في مقتطف الشفرة وإصلاحها للتأكد من أنه يعمل بشكل صحيح.

تحتاج إلى تنفيذ الوظيفة التالية:

''''الصدأ
fn استبدال_keyword_with_version(cmd_str: &str, pkg_ver: الخيار<&str>) -> النتيجة<String, TaggerError> {
    // التنفيذ الخاص بك هنا
}
```

**مدخل**
- `cmd_str` (1 <= `cmd_str.len()` <= 100): سلسلة تمثل الأمر الذي قد يحتوي على الكلمة الأساسية `&VERSION`.
- `pkg_ver` (0 <= `pkg_ver.len()` <= 100): سلسلة اختيارية تمثل إصدار الحزمة. إذا كان "البعض"، فهو يحتوي على إصدار الحزمة، وإلا فهو "لا شيء".

**انتاج**
- إذا تم العثور على الكلمة الأساسية `&VERSION` في `cmd_str` وكانت `pkg_ver` هي `Some`، فاستبدل جميع تكرارات `&VERSION` بقيمة `pkg_ver` وأعد سلسلة الأمر المحدثة.
- إذا تم العثور على الكلمة الأساسية `&VERSION` في `cmd_str` وكانت `pkg_ver` هي `None`، فقم بإرجاع `Err` مع رسالة خطأ `TaggerError`: "تم استخدام VERSION في الأمر، ولكن لا يمكن حلها ".
- إذا لم يتم العثور على الكلمة الأساسية `&VERSION` في `cmd_str`، فقم بإرجاع `cmd_str` الأصلية كما هي.

**ملحوظة**
- يجب استبدال الكلمة الأساسية `&VERSION` **حساسة لحالة الأحرف** في `cmd_str`.
- يجب إرجاع سلسلة الأمر المستبدلة كـ "سلسلة".
- لا يمكنك استخدام أي وظائف لمعالجة السلسلة بخلاف `الاستبدال`.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}