UdtEncodingMacro
io.getquill.context.cassandra.encoding.UdtEncodingMacro
object UdtEncodingMacro
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
UdtEncodingMacro.type
Members list
Type members
Classlikes
class UdtEncoderMaker[Encoder[_], T <: Udt](implicit evidence$8: Type[Encoder], evidence$9: Type[T], x$1: Quotes)
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
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.
Attributes
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]]
In this article