ProductSchemaBuilder

org.hungerford.generic.schema.product.ProductSchemaBuilder
See theProductSchemaBuilder companion object
case class ProductSchemaBuilder[T, R <: Tuple, RV <: Tuple, AF, AFS, AFE, C](nm: Option[String], desc: Option[String], vals: Set[Validator[T]], exs: Seq[T], dep: Boolean, aftSch: Aux[AF, AFS], afe: AFE, fieldDescs: R, constr: C)(using fieldsConstraint: CtxWrapTuplesConstraint[Tpe, R, RV])

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 addField[F, N <: FieldName, S](fd: Field[T, F, N, S])(using fc: => CtxWrapTuplesConstraint[Tpe, Concat[R, Field[T, F, N, S] *: EmptyTuple], Concat[RV, F *: EmptyTuple]], uniq: UniqueFieldNames[Concat[R, Field[T, F, N, S] *: EmptyTuple]]): ProductSchemaBuilder[T, Concat[R, Field[T, F, N, S] *: EmptyTuple], Concat[RV, F *: EmptyTuple], AF, AFS, AFE, Unit]
def additionalFields[NewAF](using afChoice: ConstrUpdateChoice[RV, RV, AF, NewAF, C]): AdditionalFieldsBuilder[T, R, RV, AF, AFS, AFE, C, NewAF, Constr]
def build(using uniq: => UniqueFieldNames[R], pc: ProductConstructor[C, RV, AF, T], afEv: ValidAfExtr[T, AF, AFE]): Aux[T, ProductShape[T, R, RV, AF, AFS, AFE, C]]
def buildField[F]: ProductFieldBuilder[T, F, R, RV, AF, AFS, AFE, C]
def construct(using cType: ConstructorChooser[T, RV, AF]): ConstructorBuilder[T, R, RV, AF, AFS, AFE, C, Constr]
def deprecate: ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]
def description(description: String): ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]
def examples(example: T, otherExamples: T*): ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]
def examples(examples: Seq[T]): ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]
def modifyComponent[Sel <: Tuple, F, N <: FieldName, FS, Inner](selector: Selector[Sel])(using cr: Aux[ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C], Sel, Inner]): FieldComponentUpdater[T, R, RV, AF, AFS, AFE, C, F, N, FS, Sel, Inner]
def name(name: String): ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]
def rebuildField[N <: FieldName, F, S](fieldName: N)(using fr: Aux[N, R, Field[T, F, N, S]]): FieldUpdater[F, N, S, T, R, RV, AF, AFS, AFE, C]
def removeField[N <: FieldName, NewR <: Tuple, NewRV <: Tuple](fieldName: N)(using rm: Aux[N, R, NewR], fc: => CtxWrapTuplesConstraint[Tpe, NewR, NewRV]): ProductSchemaBuilder[T, NewR, NewRV, AF, AFS, AFE, Unit]
def removeField[F, N <: Nat, NewR <: Tuple, NewRV <: Tuple](typeSelector: TypeSelector[F, N])(using rm: Aux[F, N, R, NewR], fc: => CtxWrapTuplesConstraint[Tpe, NewR, NewRV]): ProductSchemaBuilder[T, NewR, NewRV, AF, AFS, AFE, Unit]
def validate(validator: Validator[T], otherValidators: Validator[T]*): ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]
def validate(validators: Iterable[Validator[T]]): ProductSchemaBuilder[T, R, RV, AF, AFS, AFE, C]

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product