Більшість програм залежать від тих чи інших бібліотек. Керувати ними вручну може бути непросто. На щастя, екосистема Rust стандартно постачається з cargo! cargo уміє керувати залежностями проєкту.
У Rust зовнішні пакунки часто називають «крейтами». Крейт - це одиниця компіляції в Rust. Крейт можна скомпілювати у бінарний файл або в бібліотеку.
Здебільшого додати зовнішню залежність так само просто, як додати один рядок до свого файлу Cargo.toml.
У цій вправі для нас уже додано залежності enum-iterator та int-enum.
Якщо ми хочемо щось створити за допомогою Raspberry Pi, ймовірно, будемо використовувати резистори. Для цієї вправи потрібно знати про них дві речі:
Щоб обійти цю проблему, виробники друкують на резисторах кольорові смуги, які позначають значення їхнього опору. Кожна смуга має позицію та числове значення.
Перші 2 смуги резистора мають просту схему кодування: кожен колір відповідає одному числу.
У цій вправі ми створимо корисну програму, щоб нам не доводилося запамʼятовувати значення смуг.
Ці кольори кодуються так:
Мета цієї вправи - створити спосіб, який дозволяє:
Для завдання номер один нам знадобиться зовнішній крейт int-enum, а для завдання номер три - enum-iterator.
Обидва з них уже включено до Cargo.toml цієї вправи.
Обовʼязково перегляньте документацію крейтів, щоб дізнатися, як ними користуватися.
Щоб виконати завдання номер два, можна подивитися на типову реалізацію трейту Debug для Enum.
Мнемоніка зіставляє кольори з числами, які, якщо зберегти їх у масиві, випадково збігаються з їхнім індексом у масиві: Better Be Right Or Your Great Big Values Go Wrong.
Більше інформації про кольорове кодування резисторів можна знайти в статті Вікіпедії про електронний кольоровий код