Cached

smithy4s.schema.SchemaVisitor$.Cached
abstract class Cached[F[_]] extends SchemaVisitor[F]

Attributes

Graph
Supertypes
trait SchemaVisitor[F]
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Value members

Concrete methods

override def apply[A](schema: Schema[A]): F[A]

Attributes

Definition Classes

Inherited methods

final def andThen[H[_]](other: PolyFunction[F, H]): PolyFunction[F, H]

Attributes

Inherited from:
PolyFunction
def biject[A, B](schema: Schema[A], bijection: Bijection[A, B]): F[B]

Attributes

Inherited from:
SchemaVisitor
def collection[C[_], A](shapeId: ShapeId, hints: Hints, tag: CollectionTag[C], member: Schema[A]): F[C[A]]

Attributes

Inherited from:
SchemaVisitor
def enumeration[E](shapeId: ShapeId, hints: Hints, values: List[EnumValue[E]], total: E => EnumValue[E]): F[E]

Attributes

Inherited from:
SchemaVisitor
def lazily[A](suspend: Lazy[Schema[A]]): F[A]

Attributes

Inherited from:
SchemaVisitor
def map[K, V](shapeId: ShapeId, hints: Hints, key: Schema[K], value: Schema[V]): F[Map[K, V]]

Attributes

Inherited from:
SchemaVisitor
final def mapK[H[_]](fk: PolyFunction[F, H]): PolyFunction[F, H]

Attributes

Inherited from:
PolyFunction
def primitive[P](shapeId: ShapeId, hints: Hints, tag: Primitive[P]): F[P]

Attributes

Inherited from:
SchemaVisitor
def refine[A, B](schema: Schema[A], refinement: Refinement[A, B]): F[B]

Attributes

Inherited from:
SchemaVisitor
def struct[S](shapeId: ShapeId, hints: Hints, fields: Vector[Field[Schema, S, _]], make: IndexedSeq[Any] => S): F[S]

Attributes

Inherited from:
SchemaVisitor
def union[U](shapeId: ShapeId, hints: Hints, alternatives: Vector[Alt[Schema, U, _]], dispatch: Dispatcher[Schema, U]): F[U]

Attributes

Inherited from:
SchemaVisitor
final def unsafeCache(allPossibleInputs: Vector[Existential[Schema]]): PolyFunction[F, G]

Pre-computes the polyfunction by applying it on a vector of possible inputs.

Pre-computes the polyfunction by applying it on a vector of possible inputs.

Unsafe because calling the resulting polyfunction with an input that wasn't cached will result in an exception.

Attributes

Inherited from:
PolyFunction
final def unsafeMemoise: PolyFunction[F, G]

Creates a memoised version of this function.

Creates a memoised version of this function.

Unsafe because it creates mutable state, which is a non-referentially-transparent action (aka a side-effect).

Attributes

Inherited from:
PolyFunction

Abstract fields

protected val cache: CompilationCache[F]