SubtypeDsl

org.hungerford.generic.schema.coproduct.subtype.SubtypeDsl

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object exports.type

Members list

Concise view

Extensions

Extensions

extension (subtype: Subtype.type)
def builder[T, ST, D, DN](using dn: ValueOf[DN], tsEv: ToSuperGenerator[T, ST]): SubtypeBuilder[T, ST, D, DN, Unit, TS, Unit, Unit, Nothing, Unit]
extension [T, ST, D, DN, DV, N <: TypeName, S](subtype: Subtype[T, ST, D, DN, DV, N, S])
def addExamples(example: ST, otherExamples: ST*): Subtype[T, ST, D, DN, DV, N, S]
def addValidators(validator: Validator[ST], otherValidators: Validator[ST]*): Subtype[T, ST, D, DN, DV, N, S]
def apply[Sel <: Tuple, Inner](selector: Selector[Sel])(using cr: Aux[Subtype[T, ST, D, DN, DV, N, S], Sel, Inner]): Inner
def asDeprecated: Subtype[T, ST, D, DN, DV, N, S]
def asUndeprecated: Subtype[T, ST, D, DN, DV, N, S]
def modifyComponent[Sel <: Tuple, Inner](selector: Selector[Sel])(using cr: Aux[Subtype[T, ST, D, DN, DV, N, S], Sel, Inner]): Updater[Subtype[T, ST, D, DN, DV, N, S], Inner, Sel]
def modifySchema[NewS](modifier: Aux[ST, S] => Aux[ST, NewS]): Subtype[T, ST, D, DN, DV, N, NewS]
def rebuild: SubtypeBuilder[T, ST, D, DN, DV, ST => T, T => Option[ST], N, S, Aux[ST, S]]
def withDefault(default: ST): Subtype[T, ST, D, DN, DV, N, S]
def withDescription(description: String): Subtype[T, ST, D, DN, DV, N, S]
def withDiscriminatorValue[NewDV <: D & Singleton](value: NewDV)(using ev: NotGiven[D =:= Unit]): Subtype[T, ST, D, DN, NewDV, N, S]
def withExamples(example: ST, otherExamples: ST*): Subtype[T, ST, D, DN, DV, N, S]
def withFromSuper(fromSuper: T => Option[ST]): Subtype[T, ST, D, DN, DV, N, S]
def withName[NewN <: TypeName](name: NewN): Subtype[T, ST, D, DN, DV, NewN, S]
def withSchema[NewS](schema: Aux[ST, NewS]): Subtype[T, ST, D, DN, DV, N, NewS]
def withToSuper(toSuper: ST => T): Subtype[T, ST, D, DN, DV, N, S]
def withValidation(validator: Validator[ST], otherValidators: Validator[ST]*): Subtype[T, ST, D, DN, DV, N, S]
def withoutDefault: Subtype[T, ST, D, DN, DV, N, S]
def withoutDescription: Subtype[T, ST, D, DN, DV, N, S]
def withoutDiscriminator: Subtype[T, ST, Unit, Unit, Unit, N, S]
def withoutExamples: Subtype[T, ST, D, DN, DV, N, S]
def withoutValidators: Subtype[T, ST, D, DN, DV, N, S]
extension [T, ST, D, DN, DV, N <: TypeName](subtype: LazySubtype[T, ST, D, DN, DV, N])
def addExamples(example: ST, otherExamples: ST*): LazySubtype[T, ST, D, DN, DV, N]
def addValidators(validator: Validator[ST], otherValidators: Validator[ST]*): LazySubtype[T, ST, D, DN, DV, N]
def apply[Sel <: Tuple, Inner](selector: Selector[Sel])(using cr: Aux[LazySubtype[T, ST, D, DN, DV, N], Sel, Inner]): Inner
def asDeprecated: LazySubtype[T, ST, D, DN, DV, N]
def asUndeprecated: LazySubtype[T, ST, D, DN, DV, N]
def modifyComponent[Sel <: Tuple, Inner](selector: Selector[Sel])(using cr: Aux[LazySubtype[T, ST, D, DN, DV, N], Sel, Inner]): Updater[LazySubtype[T, ST, D, DN, DV, N], Inner, Sel]
def rebuild: SubtypeBuilder[T, ST, D, DN, DV, ST => T, T => Option[ST], N, Nothing, Unit]
def withDefault(default: ST): LazySubtype[T, ST, D, DN, DV, N]
def withDescription(description: String): LazySubtype[T, ST, D, DN, DV, N]
def withDiscriminatorValue[NewDV <: D & Singleton](value: NewDV)(using ev: NotGiven[D =:= Unit]): LazySubtype[T, ST, D, DN, NewDV, N]
def withExamples(example: ST, otherExamples: ST*): LazySubtype[T, ST, D, DN, DV, N]
def withFromSuper(fromSuper: T => Option[ST]): LazySubtype[T, ST, D, DN, DV, N]
def withName[NewN <: TypeName](name: NewN): LazySubtype[T, ST, D, DN, DV, NewN]
def withToSuper(toSuper: ST => T): LazySubtype[T, ST, D, DN, DV, N]
def withValidators(validator: Validator[ST], otherValidators: Validator[ST]*): LazySubtype[T, ST, D, DN, DV, N]
def withoutDefault: LazySubtype[T, ST, D, DN, DV, N]
def withoutDescription: LazySubtype[T, ST, D, DN, DV, N]
def withoutDiscriminator: LazySubtype[T, ST, Unit, Unit, Unit, N]
def withoutExamples: LazySubtype[T, ST, D, DN, DV, N]
def withoutValidators: LazySubtype[T, ST, D, DN, DV, N]