CirceProductSchemaTranslation

trait CirceProductSchemaTranslation extends BiMapProductTranslation[Codec, Json, Map[String, Json]]
trait BiMapProductTranslation[Codec, Json, Map[String, Json]]
class Object
trait Matchable
class Any

Type members

Inherited classlikes

trait BiMapExtractor[T]()
trait BiMapInjector[T]()
trait BiMapTupleExtractor[R <: Tuple]()
trait BiMapTupleInjector[RV <: Tuple, R <: Tuple]()

Inherited types

type Ctx[X] = TranslatedFieldDescription[X, OtherSchema]
Inherited from
BiMapProductTranslation

Value members

Concrete methods

protected
def buildMapVal(buildableValue: Map[String, Json]): Json

Construct the final type to be bimapped to and from

Construct the final type to be bimapped to and from

protected
def extractAdditionalFields[T](from: Json, informedBy: Codec[T]): Map[String, T]
protected
def extractField[T](from: Json, informedBy: TranslatedFieldDescription[T, Codec]): T
protected
def initMapVal: Map[String, Json]

Initial empty value for the type being mapped to and from, that can be built by adding field values. For instance, if the value type is Map[ String, T ], initMapVal would be Map.empty[ String, T ]

Initial empty value for the type being mapped to and from, that can be built by adding field values. For instance, if the value type is Map[ String, T ], initMapVal would be Map.empty[ String, T ]

Returns

initial value of buildable bimap type

protected
def schemaFromBimap[T](to: T => Json, from: Json => T): Codec[T]

Construct a schema from the two parts of a bimap.

Construct a schema from the two parts of a bimap.

Type Params
T

type being read/written

Value Params
from

MapVal => T : reader

to

T => MapVal : writer

Returns

type class instance for some reader/writer

protected
def writeAdditionalFields[T](from: Map[String, T], to: Map[String, Json], informedBy: Codec[T]): Map[String, Json]
protected
def writeField[T](value: T, to: Map[String, Json], informedBy: TranslatedFieldDescription[T, Codec]): Map[String, Json]

Inherited methods

def translate[T, Rt <: Tuple, RVt <: Tuple, FDL <: Tuple, AFt, AFSt, C, DC](schema: Aux[T, ProductShape[T, Rt, RVt, AFt, AFSt, C, DC]])(using tr: SchemaTranslator[T, ProductShape[T, Rt, RVt, AFt, AFSt, C, DC], Codec]): Codec[T]
Inherited from
BiMapProductTranslation

Givens

Inherited givens

given additionalFieldsExtractor: Aux[MapVal, OtherSchema[T], Map[String, T]]
Inherited from
BiMapProductTranslation
given additionalFieldsInjector: Aux[Map[String, T], BuildMapVal, OtherSchema[T], BuildMapVal]
Inherited from
BiMapProductTranslation
Inherited from
BiMapProductTranslation
given decoderWithAF[T, Rt <: Tuple, RVt <: Tuple, AFt, AFSt, C, DC](using val ex: Aux[Rt, RVt], val afExtractor: Aux[MapVal, OtherSchema[AFt], Map[String, AFt]], val afTranslator: SchemaTranslator[AFt, AFSt, OtherSchema], val prodConstr: ProductConstructor[C, RVt, AFt, T]): Decoder[T, ProductShape[T, Rt, RVt, AFt, AFSt, C, DC], MapVal]
given decoderWithoutAF[T, Rt <: Tuple, RVt <: Tuple, C, DC](using val ex: Aux[Rt, RVt], val prodConstr: ProductConstructor[C, RVt, Nothing, T]): Decoder[T, ProductShape[T, Rt, RVt, Nothing, Unit, C, DC], MapVal]
given encoderWithAF[T, Rt <: Tuple, RVt <: Tuple, FDL <: Tuple, AFt, AFSt, C, DC](using val ctx: CtxWrapTuplesConstraint[Ctx, FDL, RVt], val inj: BiMapTupleInjector[RVt, Rt], val afInjector: Aux[Map[String, AFt], BuildMapVal, OtherSchema[AFt], BuildMapVal], val afTranslator: SchemaTranslator[AFt, AFSt, OtherSchema], val prodDeconstr: ProductDeconstructor[DC, RVt, AFt, T]): Encoder[T, ProductShape[T, Rt, RVt, AFt, AFSt, C, DC], MapVal]
given encoderWithoutAF[T, Rt <: Tuple, RVt <: Tuple, FDL <: Tuple, C, DC](using val ctx: CtxWrapTuplesConstraint[Ctx, FDL, RVt], val inj: BiMapTupleInjector[RVt, Rt], val prodDeconstr: ProductDeconstructor[DC, RVt, Nothing, T]): Encoder[T, ProductShape[T, Rt, RVt, Nothing, Unit, C, DC], MapVal]
Inherited from
BiMapProductTranslation