@ @codec
@codec(…)
Применяется к: тип, поле
Раздел: §9.3–9.5
Синтаксис
Attr = "@" Path [ "(" [ AttrArgs ] ")" ] ;Грамматика: Прил. A
Определяется в
- 9.3 Wire-формат OxL — Бинарный формат OxL — кодирование protobuf 3 со следующими отображениями
- 9.5 Пользовательские сериализаторы — Уровень 1 — представление через другой тип (Repr), действует во всех форматах и в схемах
- 4.9 Атрибуты — Синтаксис: @имя или @имя(аргументы) перед объявлением, полем, параметром или rpc.
Примеры
@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