Перечисления
Вы узнаете
Два способа объявить enum и как switch читает значение.
pub enum Color { Red, Green, Blue } называет три случая. Форма Zig pub const Mode = enum(u8) { Idle, Run } ещё и задаёт тип, в котором хранится случай, здесь u8. switch по значению перечисляет, что даёт каждый случай, и закрывает остальное через else. Обе формы в спеке урока чисто компилируются на всех 7 бэкендах.
Попробуйте
Добавьте в Color четвёртый цвет и обновите CASES_IN_COLOR, чтобы тест прошёл.

The two enum forms the t27 compiler accepts, side by side with their cases. Lesson 18 of the t27 basics course.
specs/basics/18_enums.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 18: Enums.
; An enum names a fixed set of cases, and switch picks one of them.
module basics_18_enums;
pub enum Color {
Red,
Green,
Blue,
}
pub const Mode = enum(u8) {
Idle,
Run,
};
pub const CASES_IN_COLOR : u8 = 3;
test color_has_three_cases {
assert CASES_IN_COLOR == 3;
}
Все уроки
Модуль 1 · Файл спеки
Что лежит в файле .t27: строка module, строки прозы и комментарии.
Модуль 2 · Значения и типы
Константы, ширина целого числа, а также true, false и текст.
Модуль 3 · Массивы, триты и выражения
Списки значений, три значения трита и что вычисляют операторы.
Модуль 4 · Тесты и функции
Блок test, несколько маленьких тестов в одной спеке и функция с типизированными входами.
Модуль 5 · Внутри функции
Имена через let и var, выбор через if и switch и циклы.
Модуль 6 · Видимость и свои типы
Что pub открывает другим модулям, и структуры и перечисления, которые вы объявляете.
Модуль 7 · Модули, правила и gen-ts
Чтение другого модуля, правило, которое выполняется всегда, и спека, превращённая в TypeScript.
Модуль 8 · Компилятор и tri
Бэкенды, которые пишет t27c, стадии, в которых он читает спеку, и команда tri.
Модуль 9 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.