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

@ @codec

@codec(…)

Применяется к: тип, поле

Раздел: §9.3–9.5

Синтаксис

ebnf
Attr        = "@" Path [ "(" [ AttrArgs ] ")" ] ;

Грамматика: Прил. A

Определяется в

  • 9.3 Wire-формат OxL — Бинарный формат OxL — кодирование protobuf 3 со следующими отображениями
  • 9.5 Пользовательские сериализаторы — Уровень 1 — представление через другой тип (Repr), действует во всех форматах и в схемах
  • 4.9 Атрибуты — Синтаксис: @имя или @имя(аргументы) перед объявлением, полем, параметром или rpc.

Примеры

oxl
@explicit interface Codec<T> {
  static fn encode(x: &T, w: &var Encoder) -> () | EncodeError
  static fn decode(r: &var Decoder) -> T | DecodeError
  static fn schema() -> Schema               // для oxl export
}

data Event {
  @codec(json: Iso8601) at: Time            // в JSON — строка ISO 8601, в бинарном — по умолчанию
  @codec(Base64Url) token: bytes             // во всех форматах
}

@codec(GeoHashCodec) data Point { lat: f64; lon: f64 }

— 9.5 Пользовательские сериализаторы

Связанные диагностики

secret-json, schema-attr, deprecated

См. также