AsRealDerivation

halotukozak.mrpc.derive.AsRealDerivation

Client-proxy derivation: builds an AsReal[RawRpc[Raw], Real] that turns a transport-facing RawRpc into a concrete implementation of the real trait.

The trait synthesis is delegated to made's Done.materialize (the tuple-of-handlers .to[Real]): one Handler per operation — each an op.Args => op.OutputType function that packages a RawInvocation and forwards to the underlying RawRpc[Raw]'s fire/call/get by arity, decoding the result back via a summoned AsReal. made wires method i to handler i (declaration order = Done.Operations order = Plans[Real].Underlying order), so mrpc carries no proxy macro of its own.

Arity routing and per-handler body live in Handler; this object's only job is to read every classified OpPlan off Plans and assemble the handler tuple halotukozak.made.Done.materialize expects.

Attributes

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

Members list

Value members

Concrete methods

inline def impl[Raw, Real](plans: Tuple)(using done: Of[Real], ExecutionContext): AsReal[RawRpc[Raw], Real]

Attributes

Source
AsRealDerivation.scala