RpcMetadataCompanion

halotukozak.mrpc.meta.RpcMetadataCompanion
trait RpcMetadataCompanion[M[_]]

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
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

inline def materialize[Real](using done: Of[Real], made: Of[M[Real]]): M[Real]

Attributes

Source
RpcMetadataCompanion.scala

Givens

Givens

given fromFallback: [Real] => Fallback[M[Real]] => M[Real]

Lowest priority so a Fallback[M[Real]] never out-competes a normal given M[Real]. Mirrors commons MetadataCompanion.fromFallback.

Lowest priority so a Fallback[M[Real]] never out-competes a normal given M[Real]. Mirrors commons MetadataCompanion.fromFallback.

Attributes

Source
RpcMetadataCompanion.scala