대부분의 프로그램은 여러 라이브러리에 의존해요. 그런 의존성을 직접 관리하는 건 꽤 번거로운 일이에요. 다행히 Rust 생태계에는 cargo가 기본으로 포함되어 있어요! cargo는 프로젝트의 의존성을 관리할 수 있어요.
Rust에서는 외부 패키지를 흔히 "crates"라고 불러요. crate는 Rust의 컴파일 단위예요. crate는 바이너리나 라이브러리로 컴파일될 수 있어요.
대부분의 경우, 외부 의존성을 추가하는 일은 Cargo.toml 파일에 한 줄을 추가하는 것만큼 간단해요.
이 연습 문제에서는 enum-iterator와 int-enum 의존성이 미리 추가되어 있어요.
라즈베리 파이로 무언가를 만들고 싶다면, 아마 _저항기_를 사용하게 될 거예요. 이 연습 문제에서는 저항기에 대해 두 가지를 알아야 해요:
이 문제를 해결하기 위해 제조사는 저항값을 나타내는 색 띠를 저항기에 인쇄해요. 각 띠에는 위치와 숫자 값이 있어요.
저항기의 처음 두 개의 띠는 간단한 인코딩 방식을 따라요. 각 색은 하나의 숫자에 대응해요.
이 연습 문제에서는 띠의 값을 외우지 않아도 되도록 도움이 되는 프로그램을 만들어 볼 거예요.
색은 다음과 같이 인코딩돼요:
이 연습 문제의 목표는 다음과 같은 기능을 만드는 거예요:
첫 번째 작업에는 외부 크레이트 int-enum이 필요하고, 세 번째 작업에는 enum-iterator가 필요해요.
둘 다 이 연습 문제의 Cargo.toml에 이미 포함되어 있어요.
사용법을 익히려면 두 크레이트의 문서를 꼭 확인해 봐요.
두 번째 작업을 완료하려면 열거형의 Debug 트레이트 기본 구현을 살펴보면 돼요.
연상 기억법은 색을 숫자에 대응시키는데, 이 숫자들은 배열로 저장하면 배열에서의 인덱스와 우연히 일치해요: Better Be Right Or Your Great Big Values Go Wrong.
저항기의 색 코드 인코딩에 대한 더 자세한 내용은 전자 색 코드 위키백과 문서에서 확인할 수 있어요