Перечисления¶
Перечисление есть тип, который может принимать одно из именованных значений.
Объявление перечисления:
enum FixedColor
{
    Black,
    White,
    Red,
    Green,
    Blue,
    Yellow,
    Magenta,
    Cyan,
};
enum Component : i16 // Указан нижележащий тип для перечисления
{
    One,
    Two,
    Three,
};
Использование:
var FixedColor mut c= FixedColor::Black;
c= FixedColor::Red;
if( c == FixedColor::Red ) {}
Значения типов перечислений можно присваивать, сравнивать на равенство, преобразовывать в целое число, использовать в качестве аргументов шаблонов. При преобразовании в целое число будет получено целочисленное значение равное порядковому номеру значения перечисления при объявлении, начиная с 0.
Перечисления можно сравнивать через ==, !=, <, <=, >, >=, <=>.
Одно значение перечисления больше другого, если объявлено позже него.
Для перечисления можно указать целочисленный нижележащий тип. Значения типов перечисления будут занимать в памяти место, равное месту, занимаемому в памяти значениям нижележащего типа.
Если нижележащий тип не указан явно, им будет выбран u8, u16 или u32 - в зависимости от количества членов перечисления.
Перечисления не могут быть пустыми, должно иметься хотя-бы одно значение. Перечисление должно иметь значений не больше, чем максимальное значение нижележащего типа.
