org.scanamo.generic.semiauto
Semi-automatic format derivation.
This object provides helpers for creating org.scanamo.DynamoFormat instances for case classes.
Value members
Concrete methods
Inherited methods
- Inherited from:
- CommonDerivation
- Inherited from:
- CommonDerivation
- Inherited from:
- CommonDerivation
Must be implemented by the user of Magnolia to construct a
typeclass for case class T
using the provided type info.
E.g. if we are deriving Show[T]
typeclasses, and T
is a case class Foo(...)
, we need to constuct Show[Foo]
.
Must be implemented by the user of Magnolia to construct a
typeclass for case class T
using the provided type info.
E.g. if we are deriving Show[T]
typeclasses, and T
is a case class Foo(...)
, we need to constuct Show[Foo]
.
This method is called 'join' because typically it will join together the typeclasses for all the parameters of the case class, into a single typeclass for the case class itself. The field CaseClass.params can provide useful information for doing this.
- Value parameters:
- caseClass
information about the case class
T
, its parameters, and their typeclasses
- Inherited from:
- FormatDerivation (hidden)
This must be implemented by the user of Magnolia to construct a Typeclass for 'T', where 'T' is a Sealed Trait or Scala 3 Enum, using the provided type info. E.g. if we are deriving 'Show[T]' typeclasses, and T is an enum 'Suit' (eg with values Diamonds, Clubs, etc), we need to constuct 'Show[Suit]'.
This must be implemented by the user of Magnolia to construct a Typeclass for 'T', where 'T' is a Sealed Trait or Scala 3 Enum, using the provided type info. E.g. if we are deriving 'Show[T]' typeclasses, and T is an enum 'Suit' (eg with values Diamonds, Clubs, etc), we need to constuct 'Show[Suit]'.
This method is called 'split' because it will ''split'' the different possible types of the SealedTrait, and handle each one to finally produce a typeclass capable of handling any possible subtype of the trait.
A useful function for implementing this method is SealedTrait#choose, which can take a value instance and provide information on the specific subtype of the sealedTrait which that value is.
- Inherited from:
- FormatDerivation (hidden)
- Inherited from:
- Derivation
- Inherited from:
- SealedTraitDerivation