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

kw rpc

Зарезервированное слово

Список слов: §1.4

Синтаксис

ebnf
RpcSig      = "rpc" Ident "(" [ Params ] ")" "->" Type ;
ebnf
Rpc         = "rpc" Ident "(" [ IdentList ] ")" ( Block | "=>" Expr ) ;

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

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

Примеры

oxl
policy Orders {
  allow get(id)        if caller.isUser(db.find(Order, id)?.userId)
  allow list, recent   if caller.has(role: .Support)
  allow *              if caller.service("billing")
  deny  delete         unless caller.has(role: .Admin) && caller is .User(mfa: true, ..)
}

@public rpc health() -> Ok
@allow(role: .Admin) rpc purge() -> Ok
@internal rpc create(…) -> Order

— 13.4 Авторизация и политики

oxl
let prices = Broadcast<Tick>(buffer: TICK_BUFFER, slow: .DropOldest, replay: 1)

scope {
  spawn { for await t in Exchange.feed() { prices.publish(t) } }
  spawn { for await t in prices.subscribe() { ui.render(t) } }
  spawn { for await t in prices.subscribe() { stats.add(t) } }
}

impl Market {
  rpc ticks() -> stream<Shared<Tick>, Lagged> => prices.subscribe()   // каждому клиенту
}

— 10.4 Broadcast — локальная рассылка

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

attribute-not-applicable, cache-not-readonly, invalid-window, retry-not-idempotent, rpc-attr, duplicate-impl, impl-signature-mismatch, missing-impl, missing-rpc-impl, unknown-rpc, yield-outside-stream, data-rights, missing-policy, unknown-policy-target

См. также