বেশিরভাগ প্রোগ্রামই কোনো না কোনো লাইব্রেরির উপর নির্ভর করে। সেগুলো নিজ হাতে সামলানো বেশ ঝামেলার কাজ। ভাগ্য ভালো, Rust ইকোসিস্টেমের সঙ্গেই cargo আসে! cargo একটি প্রজেক্টের ডিপেন্ডেন্সিগুলো সামলাতে পারে।
Rust-এ বাইরের প্যাকেজগুলোকে প্রায়ই "ক্রেট" বলা হয়। একটি ক্রেট হলো Rust-এর একটি কম্পাইলেশন ইউনিট। একটি ক্রেট কম্পাইল করে বাইনারি বা লাইব্রেরি বানানো যায়।
বেশিরভাগ ক্ষেত্রেই বাইরের একটি ডিপেন্ডেন্সি যোগ করা মানে আপনার Cargo.toml ফাইলে এক লাইন যোগ করা।
এই অনুশীলনীতে আপনার জন্য enum-iterator ও int-enum ডিপেন্ডেন্সি যোগ করে দেওয়া হয়েছে।
আপনি যদি Raspberry Pi দিয়ে কিছু তৈরি করতে চান, তাহলে সম্ভবত আপনার রেজিস্টর লাগবে। এই অনুশীলনীর জন্য রেজিস্টর সম্পর্কে দুটি বিষয় জানা দরকার:
এই সমস্যা এড়াতে নির্মাতারা রেজিস্টরের গায়ে রঙিন ব্যান্ড ছাপিয়ে দেন, যা দিয়ে তার রেজিস্ট্যান্স মান বোঝানো হয়। প্রতিটি ব্যান্ডের একটি অবস্থান আর একটি সংখ্যাগত মান থাকে।
রেজিস্টরের প্রথম ২টি ব্যান্ডের এনকোডিং স্কিম সহজ: প্রতিটি রং একটি নির্দিষ্ট সংখ্যায় ম্যাপ হয়।
এই অনুশীলনীতে আপনি একটি সহায়ক প্রোগ্রাম বানাবেন, যাতে ব্যান্ডগুলোর মান আপনাকে মুখস্থ রাখতে না হয়।
এই রংগুলো এভাবে এনকোড করা হয়:
এই অনুশীলনীর লক্ষ্য হলো এমন একটি উপায় তৈরি করা, যার সাহায্যে:
প্রথম কাজটির জন্য আপনার দরকার হবে এক্সটার্নাল ক্রেট int-enum, আর তৃতীয় কাজটির জন্য দরকার হবে enum-iterator।
এগুলো দুটোই এই অনুশীলনীর Cargo.toml-এ আগেই যুক্ত করা আছে।
কীভাবে ব্যবহার করতে হয় তা জানতে ক্রেট দুটোর ডকুমেন্টেশন একবার দেখে নিন।
দ্বিতীয় কাজটি সম্পন্ন করতে আপনি Enum-এর Debug trait-এর ডিফল্ট ইমপ্লিমেন্টেশন দেখতে পারেন।
নেমোনিক রংগুলোকে যে সংখ্যাগুলোর সাথে মেলায়, সেগুলো একটি অ্যারে হিসেবে রাখলে অ্যারের ইনডেক্সের সাথেই মিলে যায়: Better Be Right Or Your Great Big Values Go Wrong.
রেজিস্টরের কালার এনকোডিং সম্পর্কে আরও তথ্য পাওয়া যাবে ইলেকট্রনিক কালার কোড উইকিপিডিয়া নিবন্ধে।
Exercism-এ সাইন আপ করুন, Rust ট্র্যাকের 99টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।