Поддерживаются только перечисления в стиле C (без данных).
Для #[derive()] на общих типах поддерживается ограниченный набор трейтов. Соответствующая функциональность также генерируется для кода C++: например, если вы выведете Hash, будет сгенерирована и реализация std::hash для соответствующего типа C++.