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

4.2 data

oxl
pub(api) data User {
  pub(api) id: UserId
  pub(api) name: Name
  pub(api) email: Email?           @since(2)
  role: Role = Role.User
  createdAt: Time = now()
  invariant name != "admin" || role == Role.Admin
}
  • Поле: видимость? имя: Тип (= значение_по_умолчанию)? атрибуты*. Атрибуты поля МОГУТ стоять перед полем или после типа на той же строке.
  • Выражение по умолчанию вычисляется при каждом создании значения и МОЖЕТ ссылаться на предыдущие поля.
  • invariant expr (контекстное слово внутри data) проверяется после каждого конструирования и после каждого var fn-метода в профилях с включёнными контрактами (§6.7).
  • Порядок полей — порядок объявления; номер поля для сериализации — §9.2.

unknown-field

См. также

Исходник: docs/spec/oxl-standard.md