«enum» که کوتاهشدهی «enumerations» است، نوعی است که همهی مقادیر ممکن یک داده را محدود میکند. به مقادیر ممکن یک enum، «گونه» میگویند. enum همچنین با match و دیگر عملگرهای کنترل جریان بهخوبی کار میکند و به شما کمک میکند تا منظور خود را در برنامههای Cairo بهتر بیان کنید.
در این تمرین، شما پیامهای لاگ نیمهساختیافته تولید میکنید.
شما با چند تابع آماده و enum زیر شروع میکنید:
#[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"
خوش بگذرانید!