AsRawDerivation

halotukozak.mrpc.derive.AsRawDerivation

Server-adapter derivation: builds an AsRaw[RawRpc[Raw], Real] that turns a real trait instance into a transport-facing RawRpc. The generated RawRpc[Raw] dispatches each incoming RawInvocation by rpcName, decodes every argument to its exact declared parameter type via a summoned AsReal[Raw, paramType], calls halotukozak.made.Done.invoke, and encodes the result back to Raw.

The fire/call/get match arms are partitioned by arity — only fire-arity ops appear in fire, and so on. An rpcName outside an arity's known set is rejected explicitly (no silent no-op), mirroring commons' unknown-method handling.

Attributes

Source
AsRawDerivation.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

inline def buildRawRpc[Raw, Real, Plans <: Tuple](api: Real)(using done: Of[Real], evidence$1: Of[OpPlan][Plans], ExecutionContext): RawRpc[Raw]

Assembles the dispatching RawRpc[Raw]; Done.Of[Real] is summoned once and shared across fire/call/get.

Assembles the dispatching RawRpc[Raw]; Done.Of[Real] is summoned once and shared across fire/call/get.

Attributes

Source
AsRawDerivation.scala
inline def impl[Raw, Real](plans: Tuple)(using evidence$1: Of[Real], ExecutionContext): AsRaw[RawRpc[Raw], Real]

Attributes

Source
AsRawDerivation.scala