CirceSchemaTranslation

Companion
object
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]()
trait CoproductReader[Source, R, D, DN]()

Inherited types

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

Value members

Inherited 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

Inherited from
CirceProductSchemaTranslation
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

Inherited from
CirceProductSchemaTranslation
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

Inherited from
CirceProductSchemaTranslation
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
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]

Givens

Givens

given Codec_T: Decoder[A]

Inherited givens

given SchemaTranslator_T_CoproductShape_Codec[T, R <: Tuple, RV <: Tuple, D, DN](using val reader: Aux[Json, R, D, DN, Option[T]], val writer: Aux[T, R, Option[Json]]): SchemaTranslator[T, CoproductShape[T, R, RV, D, DN], Codec]
given SchemaTranslator_T_SingletonShape_Codec[T <: Singleton, N <: TypeName](using val strCodec: Codec[String]): SchemaTranslator[T, SingletonShape[T, N], Codec]
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