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

II.3 Сводка встроенных атрибутов

АтрибутПрименяется кРаздел
@derive(I, …)data, enum, distinct§4.6
@sealeddata§4.3
@explicitinterface§4.6
@openenum§4.4
@errordata, enum§6.5
@reflectтип§15.2
@v(n), @since(n), @removed(n), @tag(n), @renamed(from)тип, поле§9.2
@repr(W), @codec(…), @zigzag, @preserve_unknownтип, поле§9.3–9.5
@grpc_status(code)тип ошибки§10.1
@table, @pk, @auto, @index, @sharddata, поле§12.8
@isolation(level)функция с atomic(db)§11.2
@owner, @visible, @encrypted, @auditтаблица, поле, rpc§13
@public, @allow(…)rpc§13.4
@timeout, @retry, @idempotent, @readonly, @cache, @ratelimit, @resumable, @window, @tracerpc§10.2
@retaintopic§10.5
@parallel(n)pipeline§10.6
@idle(d), @transientactor, поле актора§12.5
@near(expr), @pinned, @nonblockingфункция, актор, extern-функция§8.1, §12.6
@tag(…), @skip, @flaky, @test_onlyтест, объявление§18
@deprecated(msg), @inline, @coldлюбое объявлениеII.3

@tag(n) с целым аргументом на поле — номер поля; @tag(метки…) на тесте — метки отбора.

Также: @internal (rpc, недоступен внешним принципалам, §13.4), @c_layout (data для FFI, §16.1), @flaky(retries: n) и @skip(причина) (тест, §18.1), @must_close(by: метод?) (тип, §4.3).

Определяется реализацией. Подсказки оптимизатору (D-8063; D-7690, D-7691). @inline и @cold на fn и функции std.opt.likely(c), unlikely(c) — подсказки: они не меняют результатов программы, реализация МОЖЕТ их игнорировать. Эта реализация: @inline задаёт LLVM-атрибут alwaysinline, @cold — cold (аргументы атрибутов игнорируются без диагностики); likely(c) и unlikely(c) возвращают c и передают ожидание генератору кода (llvm.expect). @arena (арена запроса, §7.4) не реализован: размещение в арене остаётся оптимизацией, на которую можно не рассчитывать.

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