Packages

t

kantan.codecs.shapeless

ShapelessInstances

trait ShapelessInstances extends AnyRef

Provides Codec instances for case classes and sum types.

The purpose of this package is to let concrete Codec implementations (such as kantan.csv or kantan.regex) focus on providing instances for HList and Coproduct. Once such instances exist, this package will take care of the transformation from and to case classes and sum types.

Additionally, instances derived that way will be inserted with a sane precedence in the implicit resolution mechanism. This means, for example, that they will not override bespoke Option or Either instances.

Source
ShapelessInstances.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ShapelessInstances
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. implicit def caseClassDecoder[E, D, F, T, H <: HList](implicit gen: Aux[D, H], dr: Lazy[Decoder[E, H, F, T]]): DerivedDecoder[E, D, F, T]

    Provides a Decoder instance for case classes.

    Provides a Decoder instance for case classes.

    Given a case class D, this expects n Decoder instance for the HList type corresponding to D. It will then rely on that to turn encoded values into an HList, then turn the resulting value into a D.

  2. implicit def caseClassDecoderFromLabelled[E, D, F, T, H <: HList](implicit generic: Aux[D, H], hDecoder: Lazy[Decoder[E, H, F, T]]): DerivedDecoder[E, D, F, T]

    Similar to caseClassDecoder, but working with LabelledGeneric rather than just Generic.

  3. implicit def caseClassEncoder[E, D, T, H <: HList](implicit gen: Aux[D, H], er: Lazy[Encoder[E, H, T]]): DerivedEncoder[E, D, T]

    Provides an Encoder instance for case classes.

    Provides an Encoder instance for case classes.

    Given a case class D, this expects an Encoder instance for the HList type corresponding to D. It will then simply turn values of type D into values of the corresponding HList, then let the encoder take it from there.

  4. implicit def caseClassEncoderFromLabelled[E, D, T, H <: HList](implicit generic: Aux[D, H], hEncoder: Lazy[Encoder[E, H, T]]): DerivedEncoder[E, D, T]

    Similar to caseClassEncoder, but working with LabelledGeneric rather than just Generic.

  5. implicit def cnilDecoder[E, F, T](implicit arg0: IsError[F]): Decoder[E, CNil, F, T]
  6. implicit def cnilEncoder[E, D, T]: Encoder[E, CNil, T]
    Annotations
    @SuppressWarnings()
  7. implicit def coproductDecoder[E, H, D <: Coproduct, F, T](implicit dh: Decoder[E, H, F, T], dt: Decoder[E, D, F, T]): Decoder[E, :+:[H, D], F, T]
  8. implicit def coproductEncoder[E, H, D <: Coproduct, T](implicit eh: Encoder[E, H, T], ed: Encoder[E, D, T]): Encoder[E, :+:[H, D], T]
  9. implicit def sumTypeDecoder[E, D, F, T, C <: Coproduct](implicit gen: Aux[D, C], dr: Lazy[Decoder[E, C, F, T]]): DerivedDecoder[E, D, F, T]

    Provides a Decoder instance for sum types.

    Provides a Decoder instance for sum types.

    Given a case class D, this expects n Decoder instance for the Coproduct type corresponding to D. It will then rely on that to turn encoded values into a Coproduct, then turn the resulting value into a D.

  10. implicit def sumTypeEncoder[E, D, T, C <: Coproduct](implicit gen: Aux[D, C], er: Lazy[Encoder[E, C, T]]): DerivedEncoder[E, D, T]

    Provides an Encoder instance for sum types.

    Provides an Encoder instance for sum types.

    Given a sum type D, this expects an Encoder instance for the Coproduct type corresponding to D. It will then simply turn values of type D into values of the corresponding Coproduct, then let the encoder take it from there.