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