FailFastVM

abstract class FailFastVM[F[_], E] extends ValidationModule[F, FailFast, E]
trait PolicySyntax[F, FailFast, E]
trait MapSyntax[F, FailFast, E]
trait StringSyntax[F, FailFast, E]
trait OptionSyntax[F, FailFast, E]
trait BooleanSyntax[F, FailFast, E]
trait ErrorSyntax[F, FailFast, E]
trait FailSyntax[F, FailFast, E]
trait GenericSyntax[F, FailFast, E]
class Object
trait Matchable
class Any
object DefaultFailFastVM.type

Type members

Inherited classlikes

object Policy
Inherited from:
ValidationModule

Inherited types

type Policy[P] = ValidationPolicy[P, F, VR, E]

Shortcut for ValidationPolicy

Shortcut for ValidationPolicy

Inherited from:
ValidationModule
type PolicyBuilder[P] = ValidationPolicyBuilder[P, F, VR, E]
Inherited from:
ValidationModule
type Rule = F[VR[E]]
Inherited from:
ValidationModule

Value members

Inherited methods

def and(a: F[FailFast[E]], b: F[FailFast[E]]): F[FailFast[E]]

Combines a and b using AND. Short-circuits if ValidationResult.strategy is ValidationResult.Strategy.FailFast.

Combines a and b using AND. Short-circuits if ValidationResult.strategy is ValidationResult.Strategy.FailFast.

Inherited from:
ValidationModule
def andAll(list: List[F[FailFast[E]]]): F[FailFast[E]]

Combines all validations using AND

Combines all validations using AND

Inherited from:
ValidationModule
def combineAll(list: List[F[FailFast[E]]]): F[FailFast[E]]

Alias for and

Alias for and

Inherited from:
ValidationModule
def ensure[P](cond: => Boolean, vr: => FailFast[E]): F[FailFast[E]]

Returns ValidationResult.valid if cond is true else fails with provided error

Returns ValidationResult.valid if cond is true else fails with provided error

Inherited from:
ValidationModule
def ensureF[P](cond: => F[Boolean], vr: => FailFast[E]): F[FailFast[E]]
Inherited from:
ValidationModule
def fieldAssert[P](field: Field[P], cond: P => Boolean, error: Field[P] => E): F[FailFast[E]]

Like ValidationModule.ensure but single error

Like ValidationModule.ensure but single error

Inherited from:
ValidationModule
def fieldAssertF[P](field: Field[P], cond: P => F[Boolean], error: Field[P] => E): F[FailFast[E]]

Like ValidationModule.ensureF but single error

Like ValidationModule.ensureF but single error

Inherited from:
ValidationModule
def fieldCheck[P](field: Field[P], f: Field[P] => FailFast[E]): F[FailFast[E]]

Applies f validation to jap.fields.Field#value

Applies f validation to jap.fields.Field#value

Inherited from:
ValidationModule
def fieldCheckF[P](field: Field[P], f: Field[P] => F[FailFast[E]]): F[FailFast[E]]

Applies f effectful validation to jap.fields.Field#value

Applies f effectful validation to jap.fields.Field#value

Inherited from:
ValidationModule
def fieldEnsure[P](field: Field[P], cond: P => Boolean, vr: Field[P] => FailFast[E]): F[FailFast[E]]

Returns ValidationResult.valid if cond is true else fails with provided error

Returns ValidationResult.valid if cond is true else fails with provided error

Inherited from:
ValidationModule
def fieldEnsureF[P](field: Field[P], cond: P => F[Boolean], vr: Field[P] => FailFast[E]): F[FailFast[E]]

Returns ValidationResult.valid if cond is true else fails with provided error

Returns ValidationResult.valid if cond is true else fails with provided error

Inherited from:
ValidationModule
def invalid(error: E): FailFast[E]

Returns invalid VR[E] containing provided error

Returns invalid VR[E] containing provided error

Inherited from:
ValidationModule
def invalidF(error: E): F[FailFast[E]]

Returns F[_] containing invalid VR[E] containing provided error

Returns F[_] containing invalid VR[E] containing provided error

Inherited from:
ValidationModule
def or(a: F[FailFast[E]], b: F[FailFast[E]]): F[FailFast[E]]

Combines a and b using OR. Short-circuits if a is valid

Combines a and b using OR. Short-circuits if a is valid

Inherited from:
ValidationModule
def orAll(list: List[F[FailFast[E]]]): F[FailFast[E]]

Combines all validations using OR

Combines all validations using OR

Inherited from:
ValidationModule
def someOrValid(rule: => Option[F[FailFast[E]]]): F[FailFast[E]]

Unpacks rule from Option if None returns valid

Unpacks rule from Option if None returns valid

Inherited from:
OptionSyntax

Inherited fields

val valid: FailFast[E]

Valid VR[E] instance

Valid VR[E] instance

Inherited from:
ValidationModule
val validF: F[FailFast[E]]

Valid F[VR[E]] instance

Valid F[VR[E]] instance

Inherited from:
ValidationModule

Extensions

Inherited extensions

extension [P](builder: ValidationPolicyBuilder[P, F, VR, E])
inline def subRule[S1, S2, S3](inline selector1: P => S1, inline selector2: P => S2, inline selector3: P => S3)(rules: (Field[S1], Field[S2], Field[S3]) => F[FailFast[E]]*): ValidationPolicyBuilder[P, F, FailFast, E]

Adds new subrule to builder. Same as subRule but for 3 subrules

Adds new subrule to builder. Same as subRule but for 3 subrules

Inherited from:
PolicySyntax
inline def subRule[S1, S2](inline selector1: P => S1, inline selector2: P => S2)(rules: (Field[S1], Field[S2]) => F[FailFast[E]]*): ValidationPolicyBuilder[P, F, FailFast, E]

Adds new subrule to builder. Same as subRule but for 2 subrules

Adds new subrule to builder. Same as subRule but for 2 subrules

Inherited from:
PolicySyntax
inline def subRule[S](inline selector: P => S)(rules: Field[S] => F[FailFast[E]]*): ValidationPolicyBuilder[P, F, FailFast, E]

Adds new subrule to builder. Uses selector to create jap.fields.Field, rules are applied to that field

Adds new subrule to builder. Uses selector to create jap.fields.Field, rules are applied to that field

Inherited from:
PolicySyntax
extension (field: Field.type)
inline def from[V](inline value: V): Field[V]

Returns jap.fields.Field that has provided value and infers its jap.fields.FieldPath from field selects

Returns jap.fields.Field that has provided value and infers its jap.fields.FieldPath from field selects

Example:

scala> val request = Request(User("ann"))
val request: Request = Request(User(ann))
scala> val field = Field.from(request.user.name)
val field: jap.fields.Field[String] = request.user.name:ann
Inherited from:
FieldSyntax
inline def sub[V](inline value: V): Field[V]

Similar to Field.from but drops first selector path

Similar to Field.from but drops first selector path

Example:

scala> val request = Request(User("ann"))
val request: Request = Request(User(ann))
scala> val field = Field.sub(request.user.name)
val field: jap.fields.Field[String] = user.name:ann
Inherited from:
FieldSyntax
extension [P](field: Field[P])
inline def sub[S](inline selector: P => S): Field[S]

Returns subfield using selector function to extract value and as path

Returns subfield using selector function to extract value and as path

Example

scala> val request = Request(User("ann"))
scala> val field = Field.from(request)
val field: jap.fields.Field[Request] = request:Request(User(ann))
scala> field.sub(_.user.name)
val res1: jap.fields.Field[String] = request.user.name:ann
Inherited from:
FieldSyntax
extension [P](field: Field[P])
def any(using II: IsIterable[P], M: ValidationModule[F, VR, E])(check: Field[A] => F[VR[E]]): F[FailFast[E]]

Applies check to each collection element, any should succeed

Applies check to each collection element, any should succeed

Inherited from:
IterableSyntax
def anyWithIndex(using II: IsIterable[P], M: ValidationModule[F, VR, E])(check: (Field[A], Int) => F[VR[E]]): F[FailFast[E]]

Applies check to each collection element, any should succeed

Applies check to each collection element, any should succeed

Inherited from:
IterableSyntax
def each(using II: IsIterable[P], M: ValidationModule[F, VR, E])(check: Field[A] => F[VR[E]]): F[FailFast[E]]

Applies check to each collection element, each should succeed

Applies check to each collection element, each should succeed

Inherited from:
IterableSyntax
def eachWithIndex(using II: IsIterable[P], M: ValidationModule[F, VR, E])(check: (Field[A], Int) => F[VR[E]]): F[FailFast[E]]

Applies check to each collection element, each should succeed

Applies check to each collection element, each should succeed

Inherited from:
IterableSyntax
def isEmpty(using II: IsIterable[P], M: ValidationModule[F, VR, E])(using FW: FailWithNonEmpty[E]): F[FailFast[E]]

Checks that collection is empty

Checks that collection is empty

Inherited from:
IterableSyntax
def maxSize(using II: IsIterable[P], M: ValidationModule[F, VR, E])(max: Int)(using FW: FailWithMaxSize[E]): F[FailFast[E]]

Checks that collection maximum size is max

Checks that collection maximum size is max

Inherited from:
IterableSyntax
def minSize(using II: IsIterable[P], M: ValidationModule[F, VR, E])(min: Int)(using FW: FailWithMinSize[E]): F[FailFast[E]]

Checks that collection minimum size is min

Checks that collection minimum size is min

Inherited from:
IterableSyntax
def nonEmpty(using II: IsIterable[P], M: ValidationModule[F, VR, E])(using FW: FailWithEmpty[E]): F[FailFast[E]]

Checks that collection is not empty

Checks that collection is not empty

Inherited from:
IterableSyntax

Implicits

Inherited implicits

implicit val F: ValidationEffect[F]
Inherited from:
ValidationModule
implicit def Module: ValidationModule[F, FailFast, E]

Syntax classes requires implicit ValidationModule in scope

Syntax classes requires implicit ValidationModule in scope

Inherited from:
ValidationModule
Inherited from:
ValidationModule
final implicit def toBooleanFieldOps(field: Field[Boolean]): BooleanFieldOps[F, FailFast, E]
Inherited from:
BooleanSyntax
final implicit def toErrorFieldOps[P](field: Field[P]): ErrorFieldOps[P, F, FailFast, E]
Inherited from:
ErrorSyntax
final implicit def toFailFieldOps[P](field: Field[P]): FailFieldOps[P, F, FailFast, E]
Inherited from:
FailSyntax
final implicit def toFieldOps[P](field: Field[P]): FieldOps[P, F, FailFast, E]
Inherited from:
GenericSyntax
final implicit def toMapFieldOps[K, V](field: Field[Map[K, V]]): MapFieldOps[K, V, F, FailFast, E]
Inherited from:
MapSyntax
final implicit def toOptionFieldOps[P](field: Field[Option[P]]): OptionFieldOps[P, F, FailFast, E]
Inherited from:
OptionSyntax
final implicit def toOrderingFieldOps[P](field: Field[P]): OrderingFieldOps[P, F, FailFast, E]
Inherited from:
OrderingSyntax
final implicit def toStringFieldOps(field: Field[String]): StringFieldOps[F, FailFast, E]
Inherited from:
StringSyntax
final implicit def toVRIdOps[E](error: E): VRIdOps[E]
Inherited from:
ValidationResultSyntax
final implicit def toVROps[VR[_], E](vr: VR[E]): VROps[VR, E]
Inherited from:
ValidationResultSyntax
final implicit def toVRSequenceOps[VR[_], E](iterable: Iterable[VR[E]]): VRSequenceOps[VR, E]
Inherited from:
ValidationResultSyntax