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

op &var

&var

Приоритет: 14   Ассоциативность: префикс

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

Примеры

oxl
impl Vec3 {
  static op +(a: Vec3, b: Vec3) -> Vec3 => Vec3(a.x + b.x, a.y + b.y, a.z + b.z)
  static op *(v: Vec3, k: f32) -> Vec3 => Vec3(v.x * k, v.y * k, v.z * k)
  static op -(v: Vec3) -> Vec3 => v * -1.0
  op [](i: usize) -> f32 { … }            // чтение по индексу
  var op [](i: usize) -> &var f32 { … }   // запись по индексу
  op ()(t: f32) -> Vec3 { … }             // вызов как функции
  static op <=>(a: Vec3, b: Vec3) -> Ordering { … }
  op as Vec4 => Vec4(x, y, z, 1.0)
}

— 5.3 Перегрузка и пользовательские операторы

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 Пользовательские сериализаторы

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

chained-comparison, not-callable, not-overloadable, operator-decl, range-not-iterable, invalid-char, borrow-conflict, borrow-escape, schema-attr, arg-count, named-arg

См. также