package derived

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. derived
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. case class CustomTypeTag[A](typeTag: String) extends Product with Serializable
  2. trait DerivedOWrites[A, TT[A] <: TypeTag[A]] extends AnyRef

    Derives an OWrites[A]

    Derives an OWrites[A]

    TT

    Type of TypeTag to use to discriminate alternatives of sealed traits

  3. trait DerivedOWritesInstances extends DerivedOWritesInstances1
  4. trait DerivedOWritesInstances1 extends DerivedOWritesInstances2
  5. trait DerivedOWritesInstances2 extends DerivedOWritesInstances3
  6. trait DerivedOWritesInstances3 extends AnyRef
  7. trait DerivedReads[A, TT[A] <: TypeTag[A]] extends AnyRef

    Derives a Reads[A]

    Derives a Reads[A]

    TT

    Type of TypeTag to use to discriminate alternatives of sealed traits

  8. trait DerivedReadsInstances extends DerivedReadsInstances1
  9. trait DerivedReadsInstances1 extends DerivedReadsInstances2
  10. trait DerivedReadsInstances2 extends DerivedReadsInstances3
  11. trait DerivedReadsInstances3 extends AnyRef
  12. trait NameAdapter extends (String) => String

    Adapter function to transform case classes member names during the derivation process

    Adapter function to transform case classes member names during the derivation process

    A NameAdapter can be used to customize the derivation process, allowing to apply a transformation function to case classes member names when deriving serializers/deserializers

    For instance, it can be used to derive serializers/deserializers that use a different casing for the json keys.

    For example, to derive a Format[A] that uses snake_case for the json keys (using the predefined NameAdapter.snakeCase)

    import julienrf.json.derived
    import julienrf.json.derived.NameAdapter
    import play.api.libs.json.{Format, Json}
    
    case class Bar(camelCase: String)
    object Bar {
      implicit val format: Format[Bar] = derived.oformat[Bar](NameAdapter.snakeCase)
    }
    scala> Json.toJson(Bar("a json value"))
    res0: play.api.libs.json.JsValue = {"camel_case":"a json value"}
    
    scala> Json.fromJson[Bar](Json.parse("""{"camel_case":"a json value"}"""))
    res1: play.api.libs.json.JsResult[Bar] = JsSuccess(Bar(a json value),)
  13. trait TypeTag[A] extends AnyRef

    Implicit instances of this type define strategies to retrieve the type name of a given FieldType[K, T] type.

  14. trait TypeTagOFormat extends TypeTagReads with TypeTagOWrites

    Strategy to serialize and de-serialize a tagged type

  15. trait TypeTagOWrites extends AnyRef

    Strategy to serialize a tagged type (used to discriminate sum types).

    Strategy to serialize a tagged type (used to discriminate sum types).

    Built-in instances live in the companion object.

  16. trait TypeTagReads extends AnyRef

    Strategy to deserialize a tagged type (used to discriminate sum types).

    Strategy to deserialize a tagged type (used to discriminate sum types).

    Built-in instances live in the companion object.

  17. trait TypeTagSetting extends AnyRef

    Used for configuring the derivation process

Value Members

  1. def oformat[A](adapter: NameAdapter = NameAdapter.identity)(implicit derivedReads: Lazy[DerivedReads[A, ShortClassName]], derivedOWrites: Lazy[DerivedOWrites[A, ShortClassName]]): OFormat[A]
  2. def owrites[A](adapter: NameAdapter = NameAdapter.identity)(implicit derivedOWrites: Lazy[DerivedOWrites[A, ShortClassName]]): OWrites[A]
  3. def reads[A](adapter: NameAdapter = NameAdapter.identity)(implicit derivedReads: Lazy[DerivedReads[A, ShortClassName]]): Reads[A]
  4. object DerivedOWrites extends DerivedOWritesInstances
  5. object DerivedReads extends DerivedReadsInstances
  6. object NameAdapter
  7. object TypeTag
  8. object TypeTagOFormat
  9. object TypeTagOWrites
  10. object TypeTagReads
  11. object TypeTagSetting
  12. object flat
  13. object withTypeTag

Inherited from AnyRef

Inherited from Any

Ungrouped