لقد تم تكليفك بمهمة كتابة دالة تحسب معلومات شحن البطارية. تأخذ الوظيفة، `get_charge`، معلمة `battery` من النوع `&str`، الذي يمثل اسم البطارية. يجب أن تعرض الدالة صفًا يحتوي على ثلاث قيم: `charge_full` و`charge_now` و`current_now`. تمثل هذه القيم السعة الكاملة للبطارية ومستوى الشحن الحالي ومعدل التفريغ الحالي على التوالي.

لديك حق الوصول إلى وظيفة تسمى "get_data"، والتي تقوم بإرجاع معلومات البطارية كـ "نتيجة<سلسلة، خطأ>". تأخذ وظيفة `get_data` معلمتين: المعلمة `battery` (مثل `get_charge`)، والمعلمة `data` من النوع `&str`، والتي تمثل نوع معلومات البطارية المطلوب استردادها (على سبيل المثال، "charge_full"، ""charge_now"، "current_now").

مهمتك هي تنفيذ وظيفة `get_charge`، والتي يجب أن تستخدم وظيفة `get_data` لاسترداد معلومات البطارية. ومع ذلك، هناك بعض الشروط للتعامل معها:
- المعلومات التي تم إرجاعها من `get_data` هي `Result<String, Error>`، مما يعني أنها قد تحتوي على خطأ. في حالة وجود خطأ، يجب عليك إرجاع "Err" الذي يحتوي على رسالة الخطأ.
- المعلومات المستردة من `get_data` تكون في شكل `سلسلة`، والتي تحتاج إلى تحليل إلى أعداد صحيحة. إذا فشل التحليل، فيجب اعتبار القيمة 0 (صفر).

اكتب الدالة `get_charge` لتحقيق المتطلبات. في حالة حدوث أي أخطاء أثناء العملية، قم بإرجاع "Err" الذي يحتوي على رسالة الخطأ. بخلاف ذلك، قم بإرجاع `Ok` الذي يحتوي على الصف `(charge_full, Charge_now,current_now)`.

**توقيع الوظيفة:**\
`fn get_charge(battery: &str) -> النتيجة<(i32, i32, i32), خطأ>`

**مدخل:**
- تأخذ الوظيفة معلمة "البطارية" من النوع "&str"، الذي يمثل اسم البطارية.

**انتاج:**
- قم بإرجاع نوع `النتيجة`، حيث يحتوي المتغير `Ok` على صف `(charge_full، Charge_now، current_now)` أو يحتوي المتغير `Err` على رسالة خطأ.

**ملحوظة:**
- افترض أن جميع قيم الإدخال صالحة وضمن نطاق الأعداد الصحيحة المناسبة.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}