package macros
- Alphabetic
- Public
- All
Type Members
-
case class
CodecMakerConfig(fieldNameMapper: PartialFunction[String, String] = JsonCodecMaker.partialIdentity, adtLeafClassNameMapper: (String) ⇒ String = JsonCodecMaker.simpleClassName, discriminatorFieldName: Option[String] = Some("type"), isStringified: Boolean = false, mapAsArray: Boolean = false, skipUnexpectedFields: Boolean = true, transientDefault: Boolean = true, transientEmpty: Boolean = true, transientNone: Boolean = true, bigDecimalPrecision: Int = 34, bigDecimalScaleLimit: Int = 6178, bigDecimalDigitsLimit: Int = 308, bigIntDigitsLimit: Int = 308, bitSetValueLimit: Int = 1024, mapMaxInsertNumber: Int = 1024, setMaxInsertNumber: Int = 1024, allowRecursiveTypes: Boolean = false) extends Product with Serializable
Configuration parameter for
JsonCodecMaker.make()call.Configuration parameter for
JsonCodecMaker.make()call.BEWARE: a parameter of the
makemacro 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
fieldNameMapperandadtLeafClassNameMapperfunctions 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))- fieldNameMapper
the partial function of mapping from string of case class field name to JSON key (an identity function by default)
- adtLeafClassNameMapper
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)
- discriminatorFieldName
an optional name of discriminator field, where None can be used for alternative representation of ADTs without the discriminator field (Some("type") value by default)
- isStringified
a flag that turns on stringification of number or boolean values of collections, options and value classes (turned off by default)
- mapAsArray
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)
- skipUnexpectedFields
a flag that turns on skipping of unexpected fields or in other case a parse exception will be thrown (turned on by default)
- transientDefault
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)
- transientEmpty
a flag that turns on skipping serialization of fields that have empty values of arrays or collections (turned on by default)
- transientNone
a flag that turns on skipping serialization of fields that have empty values of options (turned on by default)
- bigDecimalPrecision
a precision in 'BigDecimal' values (34 by default)
- bigDecimalScaleLimit
an exclusive limit for accepted scale in 'BigDecimal' values (6178 by default)
- bigDecimalDigitsLimit
an exclusive limit for accepted number of decimal digits in 'BigDecimal' values (308 by default)
- bigIntDigitsLimit
an exclusive limit for accepted number of decimal digits in 'BigInt' values (308 by default)
- bitSetValueLimit
an exclusive limit for accepted numeric values in bit sets (1024 by default)
- mapMaxInsertNumber
a max number of inserts into maps (1024 by default)
- setMaxInsertNumber
a max number of inserts into sets excluding bit sets (1024 by default)
- allowRecursiveTypes
a flag that turns on support of recursive types (turned off by default)
-
final
class
named extends Annotation with StaticAnnotation
- Annotations
- @field()
-
final
class
stringified extends Annotation with StaticAnnotation
- Annotations
- @field()
-
final
class
transient extends Annotation with StaticAnnotation
- Annotations
- @field()
Value Members
- object JsonCodecMaker