com.github.plokhotnyuk.jsoniter_scala.macros
the function of mapping from string of case class/object full name to string value of discriminator field (a function that truncate to simple class name by default)
a flag that turns on support of recursive types (turned off by default)
an exclusive limit for accepted number of mantissa digits of to be parsed before rounding with the precision specified for 'BigDecimal' values (308 by default)
a precision in 'BigDecimal' values (34 by default)
an exclusive limit for accepted scale in 'BigDecimal' values (6178 by default)
an exclusive limit for accepted number of decimal digits in 'BigInt' values (308 by default)
an exclusive limit for accepted numeric values in bit sets (1024 by default)
an optional name of discriminator field, where None can be used for alternative representation of ADTs without the discriminator field (Some("type") by default)
the partial function of mapping from string of case class field name to JSON key (an identity function by default)
a flag that turns on stringification of number or boolean values of collections, options and value classes (turned off by default)
the partial function of mapping from string of Java enum name to JSON key (an identity function by default)
a flag that turns on serialization and parsing of maps as a JSON array (or sequences of tuples) instead of a JSON object, that allow to use 'JsonValueCodec' for encoding and decoding of keys (turned off by default)
a max number of inserts into maps (1024 by default)
a flag that turns off limitation for a position of the discriminator field to be the first field of the JSON object (turned on by default)
a max number of inserts into sets excluding bit sets (1024 by default)
a flag that turns on skipping of unexpected fields or in other case a parse exception will be thrown (turned on by default)
a flag that turns on skipping serialization of fields that have same values as default values defined for them in the primary constructor (turned on by default)
a flag that turns on skipping serialization of fields that have empty values of arrays or collections (turned on by default)
a flag that turns on skipping serialization of fields that have empty values of options (turned on by default)
a flag that turns on using of ids for parsing and serialization of Scala enumeration values
Configuration parameter for
JsonCodecMaker.make()
call.BEWARE: a parameter of the
make
macro should not depend on code from the same compilation module where it is called. Use a separated submodule of the project to compile all such dependencies before their usage for generation of codecs.Examples of
fieldNameMapper
,javaEnumValueNameMapper
, andadtLeafClassNameMapper
functions that have no dependencies in the same compilation module are:JsonCodecMaker.enforceCamelCase
,JsonCodecMaker.enforce_snake_case
,JsonCodecMaker.enforce-kebab-case
, andJsonCodecMaker.simpleClassName
. Or their composition like:s => JsonCodecMaker.enforce_snake_case(JsonCodecMaker.simpleClassName(s))