OxL Справочник OxL
РусскийEnglish

4.4 enum

oxl
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