kw io
Контекстное слово — список эффектов после возвращаемого типа (§6.2)
Список слов: §1.4
Синтаксис
Effect = "io" | "net" | "db" | "time" | "rand" | Ident ;Грамматика: Прил. A
Определяется в
- 6.2 Эффекты — Набор эффектов пишется после возвращаемого типа через запятую
- 11.2 Транзакция базы данных — Тело выполняется в транзакции базы db.
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 15.1 comptime — comptime fn выполняется только при компиляции; comptime { …
- 4.6 Интерфейсы — Интерфейсы структурные
- 0.3 Редакции и версии — Редакция (edition = "2027" в oxl.toml) фиксирует синтаксис и семантику.
- 10.2 Атрибуты rpc — Значения по умолчанию для всех rpc задаются в cluster { defaults { …
- 8.1 Модель исполнения — Единица исполнения — задача
Примеры
pub(api) interface Storage {
fn get(k: str) -> bytes? io
var fn put(k: str, v: bytes) io
fn has(k: str) -> bool io => get(k) != none // метод по умолчанию
}
interface ReadWrite { embed Reader; embed Writer }
interface Container<T> { type Item = T; fn items() -> iter<T> }
@explicit interface Persistent { fn key() -> str }
assert FileStorage: Storage // статическая проверка@explicit interface Middleware { fn around(ctx: &var Ctx, next: Next) -> Response net, io, time, db }Связанные диагностики
effects, atomic-db-effects, cross-shard-tx, comptime-error, not-comptime, explicit-interface, interface-not-satisfied, not-implemented, attribute-not-applicable, cache-not-readonly, invalid-window, retry-not-idempotent, rpc-attr, blocking-in-task