Schema

smithy4s.schema.Schema
See theSchema companion trait
object Schema

Attributes

Companion
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Schema.type

Members list

Type members

Classlikes

final case class BijectionSchema[A, B](underlying: Schema[A], bijection: Bijection[A, B]) extends Schema[B]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[B]
class Object
trait Matchable
class Any
Show all
final case class CollectionSchema[C[_], A](shapeId: ShapeId, hints: Hints, tag: CollectionTag[C], member: Schema[A]) extends Schema[C[A]]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[C[A]]
class Object
trait Matchable
class Any
Show all
final case class EnumerationSchema[E](shapeId: ShapeId, hints: Hints, tag: EnumTag[E], values: List[EnumValue[E]], total: E => EnumValue[E]) extends Schema[E]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[E]
class Object
trait Matchable
class Any
Show all
final case class LazySchema[A](suspend: Lazy[Schema[A]]) extends Schema[A]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[A]
class Object
trait Matchable
class Any
Show all
final case class MapSchema[K, V](shapeId: ShapeId, hints: Hints, key: Schema[K], value: Schema[V]) extends Schema[Map[K, V]]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[Map[K, V]]
class Object
trait Matchable
class Any
Show all
final case class OptionSchema[A](underlying: Schema[A]) extends Schema[Option[A]]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[Option[A]]
class Object
trait Matchable
class Any
Show all
final case class PrimitiveSchema[P](shapeId: ShapeId, hints: Hints, tag: Primitive[P]) extends Schema[P]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[P]
class Object
trait Matchable
class Any
Show all
final case class RefinementSchema[A, B](underlying: Schema[A], refinement: Refinement[A, B]) extends Schema[B]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[B]
class Object
trait Matchable
class Any
Show all
final case class StructSchema[S](shapeId: ShapeId, hints: Hints, fields: Vector[Field[S, _]], make: IndexedSeq[Any] => S) extends Schema[S]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[S]
class Object
trait Matchable
class Any
Show all
final case class UnionSchema[U](shapeId: ShapeId, hints: Hints, alternatives: Vector[Alt[U, _]], ordinal: U => Int) extends Schema[U]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[U]
class Object
trait Matchable
class Any
Show all

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def apply[A](implicit ev: Schema[A]): Schema[A]
def bijection[A, B](a: Schema[A], bijection: Bijection[A, B]): Schema[B]
def bijection[A, B](a: Schema[A], to: A => B, from: B => A): Schema[B]
def constant[A](a: A): Schema[A]
def either[A, B](left: Schema[A], right: Schema[B]): Schema[Either[A, B]]
def enumeration[E](total: E => EnumValue[E], tag: EnumTag[E], values: List[EnumValue[E]]): Schema[E]
def enumeration[E <: Value](tag: EnumTag[E], values: List[E]): Schema[E]
def indexedSeq[A](a: Schema[A]): Schema[IndexedSeq[A]]
def intEnumeration[E](total: E => EnumValue[E], values: List[EnumValue[E]]): Schema[E]
def intEnumeration[E <: Value](values: List[E]): Schema[E]
def list[A](a: Schema[A]): Schema[List[A]]
def map[K, V](k: Schema[K], v: Schema[V]): Schema[Map[K, V]]
def operation(id: ShapeId): OperationSchema[Unit, Nothing, Unit, Nothing, Nothing]
def option[A](s: Schema[A]): Schema[Option[A]]
def recursive[A](s: => Schema[A]): Schema[A]
def set[A](a: Schema[A]): Schema[Set[A]]
def sparseIndexedSeq[A](a: Schema[A]): Schema[IndexedSeq[Option[A]]]
def sparseList[A](a: Schema[A]): Schema[List[Option[A]]]
def sparseMap[K, V](k: Schema[K], v: Schema[V]): Schema[Map[K, Option[V]]]
def sparseSet[A](a: Schema[A]): Schema[Set[Option[A]]]
def sparseVector[A](a: Schema[A]): Schema[Vector[Option[A]]]
def stringEnumeration[E](total: E => EnumValue[E], values: List[EnumValue[E]]): Schema[E]
def stringEnumeration[E <: Value](values: List[E]): Schema[E]
def union[U](alts: Vector[Alt[U, _]]): PartiallyAppliedUnion[U]
def union[U](alts: Alt[U, _]*): PartiallyAppliedUnion[U]
def vector[A](a: Schema[A]): Schema[Vector[A]]

Concrete fields

val bigdecimal: Schema[BigDecimal]
val bigint: Schema[BigInt]
val blob: Schema[Blob]
val boolean: Schema[Boolean]
val byte: Schema[Byte]
val bytes: Schema[Blob]
val double: Schema[Double]
val float: Schema[Float]
val int: Schema[Int]
val long: Schema[Long]
val short: Schema[Short]
val string: Schema[String]
val unit: Schema[Unit]
val uuid: Schema[UUID]