SubtypeBuilder

org.hungerford.generic.schema.coproduct.subtype.SubtypeBuilder
See theSubtypeBuilder companion object
case class SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, S, Sch](tn: N, sch: Sch, ts: TS, fs: FS, dn: DN, dv: DV, desc: Option[String], vals: Set[Validator[ST]], df: Option[ST], exs: Seq[ST], dep: Boolean)

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

def build[CorrectN <: TypeName](using schEv: Sch =:= Aux[ST, S], tsEv: TS =:= ST => T, fsEv: FS =:= T => Option[ST], dvEv: CorrectDV[D, DV], tnEv: Aux[N, TypeName, CorrectN], vd: ValidDiscriminator[D, DN, Subtype[T, ST, D, DN, DV, CorrectN, S] *: EmptyTuple]): Subtype[T, ST, D, DN, DV, CorrectN, S]
def default(defaultValue: ST): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, S, Sch]
def deprecate: SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, S, Sch]
def description(description: String): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, S, Sch]
def discriminatorValue[NewDV <: D & Singleton](value: NewDV): SubtypeBuilder[T, ST, D, DN, NewDV, TS, FS, N, S, Sch]
def examples(examples: ST*): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, S, Sch]
def fromSchema[NewS](implicit schema: Aux[ST, NewS]): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, NewS, Aux[ST, NewS]]
def fromSuper(fn: T => Option[ST]): SubtypeBuilder[T, ST, D, DN, DV, TS, T => Option[ST], N, S, Sch]
def fromSuperWithoutValidation(fn: T => Option[ST]): SubtypeBuilder[T, ST, D, DN, DV, TS, T => Option[ST], N, S, Sch]
def primitive: SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, Unit, Aux[ST, Unit]]
def singleton[TN <: TypeName, SV <: Singleton & ST](using ev1: Aux[ST, Singleton, SV], ev2: Aux[N, TypeName, TN], vo: ValueOf[SV]): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, SingletonShape[SV, TN], Aux[ST, SingletonShape[SV, TN]]]
def toSuper(fn: ST => T): SubtypeBuilder[T, ST, D, DN, DV, ST => T, FS, N, S, Sch]
def typeName[NewN <: TypeName](name: NewN): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, NewN, S, Sch]
def validate(validators: Validator[ST]*): SubtypeBuilder[T, ST, D, DN, DV, TS, FS, N, S, Sch]

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product