Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment Setup

Install rustup, update stable Rust, and install mdBook:

rustup update stable
rustc --version

The repository selects rolling stable and Rust Edition 2024. It does not claim an older minimum supported Rust version.

Check out the starting state

Clone the repository, then create a working branch from main:

git fetch origin
git switch --create course-work --track origin/main

Choose another branch name if course-work already exists. Verify the untouched starter:

cargo check -p type-exercise-starter --lib --locked
cargo test -p type-exercise-starter --lib --locked

Both commands should pass. Chapter tests do not exist in the starter until you copy them.

Follow the learner boundary

  • Work only in implementation files under type-exercise-starter/src/.
  • Do not edit src/tests.rs or copied files under src/tests/.
  • Do not read, search, diff, or copy type-exercise/, archived/, Git history, or an online solution while implementing a chapter.
  • Use the chapter, copied destination test, compiler diagnostics, and official Rust documentation.
  • Add only the types, modules, dependencies, and public APIs owned by the current chapter.

The only permitted reference-to-starter operation is:

cargo x copy-test --chapter <N>

Run it without opening the source test. The command copies the cumulative tests through chapter N, removes later managed tests, and regenerates the module list. Afterward, you may read the copied destination. Its first focused run should be red until you implement the chapter.

Preview the course

mdbook serve course --open

Continue to Chapter 1: Connect One Type Family by Hand.


Your feedback is greatly appreciated. Join our Discord Community. Found an issue? Create an issue or pull request.

© 2022-2026 Alex Chi Z. Licensed under CC BY-NC-SA 4.0.