RpcMetadataCompanion
halotukozak.mrpc.meta.RpcMetadataCompanion
User-facing metadata entry point, mirroring commons RpcMetadataCompanion. A concrete metadata class's COMPANION mixes this in, parameterized by the metadata type constructor M[_], to expose materialize[Real]: M[Real] — the metadata-class-param-driven derivation.
Example (research §"Code Examples"):
final case class TraitMeta[T](
@reifyName name: String,
@rpcMethodMetadata @multi methods: List[MethodMeta[?]],
)
object TraitMeta extends RpcMetadataCompanion[TraitMeta]
// ...
val md: TraitMeta[SampleApi] = TraitMeta.materialize[SampleApi]
The macro reads M's primary-constructor params, classifies each by its steering annotation, and fills it from the real trait's halotukozak.made.Done structure — reusing RpcName.computeAll for resolved names so metadata names cannot drift from the engine's.
Attributes
- Source
- RpcMetadataCompanion.scala
- Graph
-
- Supertypes
Members list
In this article