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:
object
Companion:
class
trait SchematicRepr extends Mixin[Repr]
Companion:
object
object Static
abstract class StaticImpl
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]
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 int
object javatime
object list
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]]