UdtEncodingMacro
object UdtEncodingMacro
Type members
Classlikes
class UdtEncoderMaker[Encoder[_], T <: Udt](implicit evidence$8: Type[Encoder], evidence$9: Type[T], x$1: Quotes)
Value members
Concrete methods
def udtEncoderImpl[Encoder[_] : Type, T <: Udt : Type](implicit evidence$10: Type[Encoder], evidence$11: Type[T], Quotes): Expr[CassandraEncoderMaker[Encoder, T] => Encoder[T]]
Generate an Encoder[T] for some arbitrary Encoder[_] and arbitrary T <: Udt. This is done via the Generic Derivation mechanisms of the ProtoQuill Elaborators.
Generate an Encoder[T] for some arbitrary Encoder[_] and arbitrary T <: Udt. This is done via the Generic Derivation mechanisms of the ProtoQuill Elaborators.
Since we can't directly return an Encoder due to https://github.com/lampepfl/dotty/issues/12179 (have a look at the AnyVal encoder for more info), we pass it in as a parameter and the the CassandraEncoderMaker pattern to generate it. If we assume that all the encoders cassandra contexts ever need to use are CassandraEncoder instances then we don't need this parameter and maybe can simplify. Need to look into this some more.
inline def udtEncoderMapper[Encoder[_], T <: Udt]: CassandraEncodeMapperMaker[Encoder, T] => CassandraMapper[T, UdtValue, Encode]
def udtEncoderMapperImpl[Encoder[_] : Type, T <: Udt : Type](implicit evidence$12: Type[Encoder], evidence$13: Type[T], Quotes): Expr[CassandraEncodeMapperMaker[Encoder, T] => CassandraMapper[T, UdtValue, Encode]]