এনাম, যা এনিউমারেশনের সংক্ষিপ্ত রূপ, এমন একটি টাইপ যা কিছু ডেটার সব সম্ভাব্য মান সীমাবদ্ধ করে। একটি 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"
শুভকামনা!
Exercism-এ সাইন আপ করুন, Cairo ট্র্যাকের 25টি কনসেপ্ট68টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।