UdtEncodingMacro

class Object
trait Matchable
class Any

Type members

Classlikes

class UdtEncoderMaker[Encoder[_], T <: Udt](implicit evidence$8: Type[Encoder], evidence$9: Type[T], x$1: Quotes)

Value members

Concrete methods

inline def udtEncoder[Encoder[_], T <: Udt]: CassandraEncoderMaker[Encoder, T] => Encoder[T]
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]]