Materializes an instance of MacroInstances[Implicits, Instances]
.
Materializes an instance of MacroInstances[Implicits, Instances]
. 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 { ... }
MacroInstances.materialize[SomeImplicits, SomeInstances[SomeRealRpc]]
would generate:
new MacroInstances[SomeImplicits, SomeInstances[SomeRealRpc]] { def apply(implicits: SomeImplicits): SomeInstances[SomeRealRpc] = { import implicits._ new SomeInstances[SomeRealRpc] { def asReal: AsReal[SomeRawRpc, SomeRealRpc] = AsReal.materialize def metadata: SomeMetadata[Real] = RpcMetadata.materialize } } }