4.4 enum
pub(api) enum Role { User, Support, Admin }
pub(api) enum Shape {
Circle(r: f64)
Rect(w: f64, h: f64)
Empty
}
@error enum PayError { Declined(reason: str), Fraud, Limit(max: Money) }
@open pub(api) enum Status { New = 1, Paid = 2, Shipped = 3 }- Вариант: без полей, с позиционными или с именованными полями. Конструирование:
Shape.Circle(1.0),Shape.Rect(w: 2, h: 3); при известном типе —.Circle(1.0). - Явные дискриминанты (
= n) допустимы только у enum без полей. @open— в будущих версиях могут появиться варианты;matchпо такому enum вне пакета ДОЛЖЕН иметь ветку_.@errorпомечает тип как ошибку (§6.5).
См. также
Исходник: docs/spec/oxl-standard.md