CodecDerivation

esexpr.ESExprCodec.CodecDerivation

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

final class DerivedProductCodec[T <: Product, Types <: Tuple](constructor: String, derivedTuple: ESExprCodecProduct[Types])(using m: ProductOf[T] { type MirroredElemTypes = Types; }) extends ESExprCodec[T]

Attributes

Supertypes
trait ESExprCodec[T]
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class ProductConsCodec[HType, TType]
final class ProductConsCodec[HType, TType <: Tuple](fieldCodec: ESExprCodecProduct[HType], tailCodec: ESExprCodecProduct[TType]) extends ESExprCodecProduct[HType *: TType]

Attributes

Supertypes
trait ESExprCodecProduct[HType *: TType]
class Object
trait Matchable
class Any
final case class ProductDecodeError(message: String, path: ProductErrorPath)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final case class ProductDecodeState(positionalIndex: Int, args: Seq[ESExpr], kwargs: Map[String, ESExpr])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final class ProductEmptyCodec extends ESExprCodecProduct[EmptyTuple]

Attributes

Supertypes
trait ESExprCodecProduct[EmptyTuple]
class Object
trait Matchable
class Any

Attributes

Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Value members

Concrete methods

inline def buildSumCodecs[T, SubTypes <: Tuple]: Map[ESExprTag, ESExprCodec[_ <: T]]
def defaultKeywordProductCodec[A](keyword: String, codec: ESExprCodec[A], defaultValue: => A)(using CanEqual[A, A]): ESExprCodecProduct[A]
inline def derived[T](using m: Of[T]): ESExprCodec[T]
inline def derivedProduct[T](using m: ProductOf[T]): ESExprCodec[T]
inline def derivedProductTuple[T, TypeLabel <: String, Labels <: Tuple, Types <: Tuple]: ESExprCodecProduct[Types]
inline def derivedSum[T](using m: SumOf[T]): ESExprCodec[T]
inline def derivedSumCreateCodec[T](codecMap: => Map[ESExprTag, ESExprCodec[_ <: T]])(using m: SumOf[T]): ESExprCodec[T]
def derivedSumMacro[T, SubTypes <: Tuple](codecMap: Expr[Map[ESExprTag, ESExprCodec[_ <: T]]])(using evidence$1: Type[T], evidence$2: Type[SubTypes], q: Quotes): Expr[ESExprCodec[T]]
def dictProductCodec[A](dictCodec: DictCodec[A]): ESExprCodecProduct[A]
def inlineValueCodec[T <: Product, Elem](elemCodec: ESExprCodec[Elem])(using m: ProductOf[T] { type MirroredElemTypes = Elem *: EmptyTuple; }): ESExprCodec[T]
def optionalKeywordProductCodec[A](keyword: String, optionalValueCodec: OptionalValueCodec[A]): ESExprCodecProduct[A]
def requiredKeywordProductCodec[A](keyword: String, codec: ESExprCodec[A]): ESExprCodecProduct[A]
inline def simpleEnumCaseNames[Labels <: Tuple, Cases <: Tuple]: List[String]
inline def simpleEnumCaseValues[T, Cases <: Tuple](using m: SumOf[T]): List[T]
def simpleEnumCodec[T](caseNames: Array[String], caseValues: Map[String, T])(using m: SumOf[T]): ESExprCodec[T]
def toSExprName(name: String): String
def varargProductCodec[A](varargCodec: VarargCodec[A]): ESExprCodecProduct[A]