Fallback

zio.schema.Schema.Fallback
final case class Fallback[A, B](left: Schema[A], right: Schema[B], fullDecode: Boolean, annotations: Chunk[Any]) extends Schema[Fallback[A, B]]

Schema for zio.schema.Fallback type. If fullDecode is set to true, it will decode Fallback.Both from Fallback.Both. If set to false, it will decode Fallback.Left when possible and Fallback.Right as second option from a Fallback.Both.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Schema[Fallback[A, B]]
class Object
trait Matchable
class Any
Show all
Self type
Fallback[A, B]

Members list

Type members

Types

override type Accessors[Lens[_, _, _], Prism[_, _, _], Traversal[_, _]] = (Prism[String, Either[A, B], Right[Nothing, B]], Prism[String, Either[A, B], Left[A, Nothing]])
type LeftType = A
type RightType = B

Value members

Concrete methods

override def annotate(annotation: Any): Fallback[A, B]

Returns a new schema that with annotation

Returns a new schema that with annotation

Attributes

Definition Classes
override def defaultValue: Either[String, Fallback[A, B]]

The default value for a Schema of type A.

The default value for a Schema of type A.

Attributes

Definition Classes
override def makeAccessors(b: AccessorBuilder): (Prism[String, Either[A, B], Right[Nothing, B]], Prism[String, Either[A, B], Left[A, Nothing]])

Attributes

Definition Classes

Inherited methods

def <*>[B](that: Schema[B]): Schema[(A, B)]

A symbolic operator for zip.

A symbolic operator for zip.

Attributes

Inherited from:
Schema
def <+>[B](that: Schema[B]): Schema[Either[A, B]]

A symbolic operator for orElseEither.

A symbolic operator for orElseEither.

Attributes

Inherited from:
Schema
def ?: Schema[Option[A]]

A symbolic operator for optional.

A symbolic operator for optional.

Attributes

Inherited from:
Schema

Attributes

Inherited from:
Schema
def coerce[B](newSchema: Schema[B]): Either[String, Schema[B]]

Convert to Schema[B] iff B and A are homomorphic.

Convert to Schema[B] iff B and A are homomorphic.

This can be used to e.g convert between a case class and it's "generic" representation as a ListMap[String,_]

Attributes

Inherited from:
Schema
def diff(thisValue: Fallback[A, B], thatValue: Fallback[A, B]): Patch[A]

Performs a diff between thisValue and thatValue. See zio.schema.Differ for details on the default diff algorithms.

Performs a diff between thisValue and thatValue. See zio.schema.Differ for details on the default diff algorithms.

Attributes

Inherited from:
Schema

Attributes

Inherited from:
Schema
def migrate[B](newSchema: Schema[B]): Either[String, A => Either[String, B]]

Generate a homomorphism from A to B iff A and B are homomorphic

Generate a homomorphism from A to B iff A and B are homomorphic

Attributes

Inherited from:
Schema

Returns a new schema that modifies the type produced by this schema to be optional.

Returns a new schema that modifies the type produced by this schema to be optional.

Attributes

Inherited from:
Schema
def orElseEither[B](that: Schema[B]): Schema[Either[A, B]]

Returns a new schema that combines this schema and the specified schema together, modeling their either composition.

Returns a new schema that combines this schema and the specified schema together, modeling their either composition.

Attributes

Inherited from:
Schema
def ordering: Ordering[A]

Attributes

Inherited from:
Schema
def patch(oldValue: Fallback[A, B], diff: Patch[Fallback[A, B]]): Either[String, A]

Patch value with a Patch.

Patch value with a Patch.

Attributes

Inherited from:
Schema

Attributes

Inherited from:
Product

Attributes

Inherited from:
Product
def repeated: Schema[Chunk[A]]

Attributes

Inherited from:
Schema

Attributes

Inherited from:
Schema
def toDynamic(value: Fallback[A, B]): DynamicValue

Attributes

Inherited from:
Schema
def transform[B](f: Fallback[A, B] => B, g: B => Fallback[A, B])(implicit loc: SourceLocation): Schema[B]

Transforms this Schema[A] into a Schema[B], by supplying two functions that can transform between A and B, without possibility of failure.

Transforms this Schema[A] into a Schema[B], by supplying two functions that can transform between A and B, without possibility of failure.

Attributes

Inherited from:
Schema
def transformOrFail[B](f: Fallback[A, B] => Either[String, B], g: B => Either[String, Fallback[A, B]])(implicit loc: SourceLocation): Schema[B]

Transforms this Schema[A] into a Schema[B], by supplying two functions that can transform between A and B (possibly failing in some cases).

Transforms this Schema[A] into a Schema[B], by supplying two functions that can transform between A and B (possibly failing in some cases).

Attributes

Inherited from:
Schema
def validate(value: Fallback[A, B])(implicit schema: Schema[Fallback[A, B]]): Chunk[ValidationError]

Attributes

Inherited from:
Schema
def zip[B](that: Schema[B]): Schema[(A, B)]

Returns a new schema that combines this schema and the specified schema together, modeling their tuple composition.

Returns a new schema that combines this schema and the specified schema together, modeling their tuple composition.

Attributes

Inherited from:
Schema

Concrete fields

val leftSchema: Schema[Left[A, Nothing]]
val rightSchema: Schema[Right[Nothing, B]]
val toEither: Either[A, B]
val toEnum: Enum2[Right[Nothing, B], Left[A, Nothing], Either[A, B]]