schematic

package schematic

Type members

Classlikes

case
class Alt[F[_], S, A](label: String, instance: F[A], inject: A => S)

Represents a member of coproduct type (sealed trait)

Represents a member of coproduct type (sealed trait)

Companion
object
object Alt
Companion
class
class ByteArray(val array: Array[Byte])
Companion
object
object ByteArray
Companion
class
sealed abstract
class Field[F[_], S, A]

Represents a member of product type (case class)

Represents a member of product type (case class)

Companion
object
object Field
Companion
class
final case
class OneOf[-S[_[_]], U, A](label: String, schema: Schema[S, A], inject: A => U)
Companion
object
object OneOf
Companion
class
final case
class OptionalField[S[_[_]], Struct, A](label: String, schema: Schema[S, A], get: Struct => Option[A]) extends StructureField[S, Struct, Option[A]]
trait PolyFunction[F[_], G[_]]

Natural transformation, turning a polymorphic type into another, whilst keeping the type parameter intact.

Natural transformation, turning a polymorphic type into another, whilst keeping the type parameter intact.

Companion
object
Companion
class
trait Printer
Companion
object
object Printer
Companion
class
final case
class RequiredField[S[_[_]], Struct, A](label: String, schema: Schema[S, A], get: Struct => A) extends StructureField[S, Struct, A]
trait Schema[-S[_[_]], A]

Purposefully open interface meant to enable building schemas as values, in an extensible manner.

Purposefully open interface meant to enable building schemas as values, in an extensible manner.

The metamodel gets inferred automatically via contravariance.

Companion
object
object Schema
Companion
class
object Schematic
Companion
class
Companion
class
object Static
abstract
sealed abstract
class StructureField[-S[_[_]], Struct, A]

Represents a member of product type (case class)

Represents a member of product type (case class)

trait StubSchematic[F[_]] extends Mixin[F] with StubSchematic[F] with GenericAritySchematic[F]
object bigdecimal
object bigint
object bijection

Provides capabilities to express a bijection between a type contained within the metamodel and one that is not.

Provides capabilities to express a bijection between a type contained within the metamodel and one that is not.

object boolean
object byte
object bytes
object double
object float
object instant
object int
object javatime
object list
object localDate
object long
object map

Provides schematic functions to model maps/dictionaries.

Provides schematic functions to model maps/dictionaries.

object maps
object set
object short
object string
object struct
object suspended

Provides capabilities to suspend encoders/decoders, which is useful for recursive datatypes

Provides capabilities to suspend encoders/decoders, which is useful for recursive datatypes

object union

Provides functions to model coproducts (sealed-hints).

Provides functions to model coproducts (sealed-hints).

object unit
object uuid
object vector

Types

type Existential[+F[_]]
type NumericSchematic[F[_]] = Schematic[F] & Schematic[F] & Schematic[F] & Schematic[F] & Schematic[F]
type Repr[A] = String
type Static[A] = A & Tag
type Wrapped[F[_], G[_], A] = F[G[A]]