@ @open
@open
Применяется к: enum
Раздел: §4.4
Синтаксис
Attr = "@" Path [ "(" [ AttrArgs ] ")" ] ;Грамматика: Прил. A
Определяется в
- 4.4 enum — Вариант: без полей, с позиционными или с именованными полями.
- 4.9 Атрибуты — Синтаксис: @имя или @имя(аргументы) перед объявлением, полем, параметром или rpc.
- 9.2 Номера полей и схема — Каждое поле data и каждый вариант enum имеет стабильный тег (номер в wire-формате).
- 9.3 Wire-формат OxL — Бинарный формат OxL — кодирование protobuf 3 со следующими отображениями
- 9.4 Декодирование и проверка — Отсутствует обязательное поле → DecodeError.Missing.
Примеры
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 }— 4.4 enum
Связанные диагностики
deprecated, schema-attr, schema-break, secret-json