final class infer extends Annotation with DirectMetadataParamStrategy
When a metadata parameter is annotated as @infer
, RPC macro engine will materialize that parameter by searching
for an implicit value of that parameter's type. @infer
is the default strategy assumed for implicit parameters
of metadata classes, so using this annotation explicitly is only needed when you want an implicit search done
for non-implicit parameter. This may be useful if, e.g. you want an inferred parameter to be a case class field.
NOTE: By default, implicit search for @infer
parameter does NOT affect the decision about whether some real
method or real parameter matches a metadata parameter. For example, if an implicit for @infer
parameter cannot be
found, you will only know about it *after* the metadata materializing macro has already been expanded.
This behaviour can be changed with checked annotation.
The @infer
annotation may also be used on a parameter of an annotation reified with reifyAnnot
in order to simulate implicit parameter. This is a workaround for the fact that Scala
annotations cannot accept multiple parameter lists. In such situation, infer.value
should be used as default
value of "implicit" annotation parameter:
class valueWithCodec[T](value: T, @infer codec: GenCodec[T] = infer.value) extends scala.annotation.StaticAnnotation
- Alphabetic
- By Inheritance
- infer
- DirectMetadataParamStrategy
- MetadataParamStrategy
- StaticAnnotation
- Annotation
- AnyRef
- Any
- Hide All
- Show All
- Public
- All