This project contains set of rules allowing to migrate Scala 2 macro-annotation based codecs into Scala 3 built-in derivation.
Main rule, detects usages of macro-annotations or derivation from circe-generic-extras
and replaces them with the counterparts defined in circe
core Scala 3 library.
Compatible with Circe 0.14.7 or later.
Can be used to migrate usages of both circe-generic-extras
and circe-derivation
(partially) to Scala 3.
Supported rewrites:
- -
JsonCodec
macro-annotations - replaced withCodec
derivation; - -
ConfiguredJsonCodec
macro-annotations - replaced withConfiguredCodec
derivation; - -
ConfiguredJsonCodec(encodeOnly = true)
/ConfiguredJsonCodec(decodeOnly = true)
- rewritten intoConfiguredEncoder
orConfiguredDecoder
derived instances; - -
@JsonKey
annotations - field names defined in primary constructor or as member fields are transformed into dedicatedConfiguraiton
instance; - -
generic.extras.semiauto
:- -
deriveCodec[T]
,deriveDecoder[T]
,deriveEncoder[T]
, - replaces calls to methods defined inio.circe.generic.extras.semiauto._
with their counterpart inio.circe.generic.semiauto._
, does not requrie implicitConfiguration
. Requiresio.circe::circe-generic
dependency - -
deriveConfiguredCodec[T]
,deriveConfiguredDecoder[T]
,deriveConfiguredEncoder[T]
- rewritten intoCodec.derived
/Decoder.derivedConfigured
/Encoder.derived
- -
deriveUnwrappedCodec[T]
,deriveUnwrappedDecoder[T]
,deriveUnwrappedEncoder[T]
- rewritten intoCodec
/Decoder
/Encoder
constructed from value class underlying type andmap
/contramap
operations. - -
deriveEnumerationCodec[T]
,deriveEnumerationDecoder[T]
,deriveEnumerationEncoder[T]
- not yet supported - -
deriveFor
- no replacement in Scala 3 - -
deriveExtrasCodec[T]
,deriveExtrasDecoder[T]
,deriveExtrasEncoder[T]
: no replecement in Scala 3
- -
Simple rule allowing to adopt to json
string interpolator changes done in Scala 3. Would rewrite imports io.circe.literal.JsonStringContext
into io.circe.literal.json
.
For information on how to use this projects refer to Scalafix user guide