التعداد enum نوع يحدّ من جميع القيم الممكنة لبيانات ما، وتُسمّى القيم الممكنة للتعداد enum صيغًا. ويعمل التعداد جيدًا أيضًا مع match وغيره من عوامل التحكم في التدفق، لمساعدتك على التعبير عن قصدك في برامج Rust.
في هذا التمرين ستُنشئ رسائل سجل شبه مُهيكلة.
ستبدأ ببعض الدوال غير المكتملة وبالتعداد التالي:
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
هدفك هو إصدار رسالة سجل بالشكل التالي: "[<LEVEL>]: <MESSAGE>".
ستحتاج إلى تنفيذ دوال تقابل مستويات السجل.
على سبيل المثال، يوضح المقطع التالي المخرَج المتوقع من دالة log.
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
وبالنسبة إلى info:
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
استمتع!
يوجد في هذه المجموعة اختبار مقيَّد بميزة. بوابات الميزات تعطّل التصريف كليًا لأقسام معينة من برنامجك. ستُغطّى لاحقًا. في الوقت الحالي، اعلم فقط أن هناك اختبارًا يُبنى ويُشغَّل فقط عند استخدام استدعاء اختبار خاص:
cargo test --features add-a-variant
الغرض من هذا الاختبار أن يوضح لك كيفية إضافة متغيّر جديد إلى تعدادك.
سجّل في Exercism لتتعلّم وتتقن Rust عبر 99 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.