JsonSchemas
Type members
Inherited classlikes
Extension methods for values of type F[A]
for which there is an implicit
InvariantFunctor[F]
instance.
Extension methods for values of type F[A]
for which there is an implicit
InvariantFunctor[F]
instance.
- Inherited from:
- InvariantFunctorSyntax
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
- Inherited from:
- JsonSchemas
Implicit methods for values of type JsonSchema
Implicit methods for values of type JsonSchema
- Inherited from:
- JsonSchemas
- Inherited from:
- PartialInvariantFunctorSyntax
Implicit methods for values of type Record
Implicit methods for values of type Record
- Inherited from:
- JsonSchemas
Types
Value members
Concrete methods
- Definition Classes
- Definition Classes
Override this method to customize the behaviour of encoders produced by optFieldWithDefault when encoding a field value that corresponds to the specified default value. By default, the default values are included.
Override this method to customize the behaviour of encoders produced by optFieldWithDefault when encoding a field value that corresponds to the specified default value. By default, the default values are included.
As an example, consider the following Scala class and instances of it.
case class Book(
name: String,
availableAsEBook: Boolean = false
)
val book1 = Book("Complete Imaginary Works", false)
val book2 = Book("History of Writing", true)
With encodersSkipDefaultValues = false
(which is the default), the field
is always encoded, regardless of whether it is also the default value.
This makes encoding performance predictable, but results in larger and
more complicated encoded payloads:
{ "name": "Complete Imaginary Works", "availableAsEBook": false }
{ "name": "History of Writing", "availableAsEBook": true }
With encodersSkipDefaultValues = true
, the field is skipped if its value
if also the field's default value. This means encoding can be slower
(since potentially expensive equality check needs to be performed), but
the encoded payloads are smaller and simpler:
{ "name": "Complete Imaginary Works" }
{ "name": "History of Writing", "availableAsEBook": true }
- Definition Classes
- Definition Classes
Inherited methods
Default discriminator field name for sum types.
Default discriminator field name for sum types.
It defaults to "type", but you can override it twofold:
- by overriding this field you can change default discriminator name algebra-wide
- by using
withDiscriminator
you can specify discriminator field name for specific sum type
- Inherited from:
- JsonSchemas
Convenient constructor for enumerations represented by int values.
Convenient constructor for enumerations represented by int values.
- Inherited from:
- JsonSchemas
A schema for a statically known value.
A schema for a statically known value.
- Decoder interpreters first try to decode incoming values with the given
tpe
schema, and then check that it is equal to the givenvalue
, - Encoder interpreters always produce the given
value
, encoded according totpe
, - Documentation interpreters enrich the JSON schema with a
const
property documenting its only possible value (or anenum
property with a single item).
This is useful to model schemas of objects containing extra fields that are absent from their Scala representation. For example, here is a schema for a GeoJSON point:
case class Point(lon: Double, lat: Double)
val pointSchema = (
field("type")(literal("Point")) zip
field[(Double, Double)]("coordinates")
).xmap(Point.tupled)(p => (p.lon, p.lat))
- Inherited from:
- JsonSchemas
The JSON schema of a coproduct that share the same parent type and thus can be widened to that parent type
The JSON schema of a coproduct that share the same parent type and thus can be widened to that parent type
- Inherited from:
- JsonSchemas
Convenient constructor for enumerations represented by string values.
Convenient constructor for enumerations represented by string values.
- Inherited from:
- JsonSchemas
Concrete fields
Implicits
Implicits
Inherited implicits
Extension methods for values of type F[A]
for which there is an implicit
InvariantFunctor[F]
instance.
Extension methods for values of type F[A]
for which there is an implicit
InvariantFunctor[F]
instance.
- Inherited from:
- InvariantFunctorSyntax
Implicit methods for values of type JsonSchema
Implicit methods for values of type JsonSchema
- Inherited from:
- JsonSchemas
- Inherited from:
- PartialInvariantFunctorSyntax
Implicit methods for values of type Record
Implicit methods for values of type Record
- Inherited from:
- JsonSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas
- Inherited from:
- TuplesSchemas