EvoReads

evo.derivation.play.json.EvoReads$
See theEvoReads companion trait
object EvoReads extends ConsistentTemplate[Reads, EvoReads] with SummonForProduct

Attributes

Companion:
trait
Graph
Supertypes
trait SummonForProduct
trait ConsistentTemplate[Reads, EvoReads]
trait Template
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Type members

Classlikes

class ProductReadsMake[A](using mirror: ProductOf[A])(fieldInstances: All[Reads, <none>])(using config: => Config[A]) extends EvoReads[A]

Attributes

Graph
Supertypes
trait EvoReads[A]
trait Reads[A]
class Object
trait Matchable
class Any
class SumReads[A](using config: => Config[A], mirror: SumOf[A])(mkSubDecoders: => Map[String, Reads[A]]) extends EvoReads[A]

Attributes

Graph
Supertypes
trait EvoReads[A]
trait Reads[A]
class Object
trait Matchable
class Any

Inherited types

type OfField[A] = TC[A]

requirement typeclass for the each of the object fields

requirement typeclass for the each of the object fields

Attributes

Inherited from:
ConsistentTemplate
type OfNewtype[A] = TC[A]

requirement typeclass for base type wrapped in new type or value class

requirement typeclass for base type wrapped in new type or value class

Attributes

Inherited from:
ConsistentTemplate
type OfSubtype[A] = TC[A]

requirement typeclass for the each of the enum subtypes

requirement typeclass for the each of the enum subtypes

Attributes

Inherited from:
ConsistentTemplate
type Provide[A] = Prov[A]

resulting typeclass, usually equvalent to the type, your companion is bound

resulting typeclass, usually equvalent to the type, your companion is bound

Attributes

Inherited from:
ConsistentTemplate

Value members

Concrete methods

def newtype[A](using nt: ValueClass[A])(using reads: Reads[Representation]): EvoReads[A]

called for the newtype \ value class derivation

called for the newtype \ value class derivation

Attributes

def product[A](using mirror: ProductOf[A])(fields: All[Reads, <none>])(using => Config[A], A <:< Product): EvoReads[A]

called for the case classes derivation

called for the case classes derivation

Attributes

def sum[A](using mirror: SumOf[A])(subs: All[Reads, <none>], mkSubMap: => Map[String, Reads[A]])(using config: => Config[A], matching: Matching[A]): EvoReads[A]

called for the sealed trait \ enum derivation

called for the sealed trait \ enum derivation

WARNING: mkSubMap makes assumption that you can use your subtype instances as instances for the target type, use with great caution!

Attributes

Inherited methods

inline def derived[A](using config: => Config[A]): Provide[A]

this is the method that would be called when the derivation occurs you can redefine it to add some custom logic

this is the method that would be called when the derivation occurs you can redefine it to add some custom logic

Attributes

Inherited from:
Template
inline def lazySummonForProduct[A : ProductOf]: LazySummonByConfig[Provide, A]

Attributes

Inherited from:
Template

Givens

Inherited givens

inline given given_LazySummonByConfig_Provide_A[A : ProductOf]: LazySummonByConfig[Provide, A]

Attributes

Inherited from:
SummonForProduct