Materializes an instance of RpcMacroInstances[Implicits, InstancesTrait, Real]
.
Materializes an instance of RpcMacroInstances[Implicits, InstancesTrait, Real]
. This macro should not be
invoked directly, it should only be used to materialize implicit parameters of RPC companion base classes,
e.g. DefaultRestApiCompanion.
trait SomeRawRpc { ... } class SomeMetadata[Real](...) trait SomeInstances[Real} { def asReal: AsReal[SomeRawRpc, Real] def metadata: SomeMetadata[Real] } trait SomeImplicits { ... } object SomeImplicits extends SomeImplicits trait SomeRealRpc { ... }
RpcMacroInstances.materialize[SomeImplicits, SomeInstances, SomeRealRpc]
would generate:
new RpcMacroInstances[SomeImplicits, SomeInstances, SomeRealRpc] { def apply(implicits: SomeImplicits): SomeInstances[SomeRealRpc] = { import implicits._ new SomeInstances[SomeRealRpc] { def asReal: AsReal[SomeRawRpc, SomeRealRpc] = AsReal.materializeForRpc def metadata: SomeMetadata[Real] = RpcMetadata.materializeForRpc } } }