ConstraintDSLModule

PackageReified.Constraint
Constraint constructors usable without the Constraint. prefix inside a module that declares value rules.

Summary

NameSignatureSynopsis
presentpresent Alias for .
blankblank Alias for .
optionaloptional innerAlias for .
minLengthminLength minimumAlias for .
maxLengthmaxLength maximumAlias for .
lengthBetweenlengthBetween minimum maximumAlias for .
emailemail Alias for .
trimmedtrimmed Alias for .
numericnumeric Alias for .
alphanumericalphanumeric Alias for .
patternpattern Alias for .
oneOfoneOf Alias for .
noneOfnoneOf Alias for .
equalToequalTo Alias for .
notEqualTonotEqualTo Alias for .
greaterThangreaterThan Alias for .
lessThanlessThan Alias for .
atLeastatLeast Alias for .
atMostatMost Alias for .
positivepositive Alias for .
nonNegativenonNegative Alias for .
negativenegative Alias for .
nonPositivenonPositive Alias for .
singlesingle Alias for .
atLeastOneatLeastOne Alias for .
atMostOneatMostOne Alias for .
moreThanOnemoreThanOne Alias for .
notContainsnotContains expectedAlias for .
multipleOfmultipleOf divisorAlias for .
finitefinite Alias for .
finite32finite32 Alias for .
notWithnotWith Alias for .
customcustom Alias for .
customLocalizedcustomLocalized Alias for .
customWithcustomWith Alias for .
contramapcontramap Alias for .
describedescribe Alias for .
orErrororError failure resultReplaces a failed constraint's violation with the supplied error.
mapErrormapError mapper resultMaps a failed constraint's violation with the supplied function.

present

present
Member
Alias for present.

Returns

Constraint<^value>

blank

blank
Member
Alias for blank.

Returns

Constraint<^value>

optional

optional inner
Member
Alias for optional.

Parameters

NameTypeDescription
innerConstraint<'a>

Returns

Constraint<^b>

minLength

minLength minimum
Member
Alias for minLength.

Parameters

NameTypeDescription
minimumint

Returns

Constraint<^value>

maxLength

maxLength maximum
Member
Alias for maxLength.

Parameters

NameTypeDescription
maximumint

Returns

Constraint<^value>

lengthBetween

lengthBetween minimum maximum
Member
Alias for lengthBetween.

Parameters

NameTypeDescription
minimumint
maximumint

Returns

Constraint<^value>

email

email
Member
Alias for email.

Returns

Constraint<string>

trimmed

trimmed
Member
Alias for trimmed.

Returns

Constraint<string>

numeric

numeric
Member
Alias for numeric.

Returns

Constraint<string>

alphanumeric

alphanumeric
Member
Alias for alphanumeric.

Returns

Constraint<string>

pattern

pattern
Member
Alias for pattern.

Returns

string -> Constraint<string>

oneOf

oneOf
Member
Alias for oneOf.

Returns

'a seq -> Constraint<'a>

noneOf

noneOf
Member
Alias for noneOf.

Returns

'a seq -> Constraint<'a>

equalTo

equalTo
Member
Alias for equalTo.

Returns

'a -> Constraint<'a>

notEqualTo

notEqualTo
Member
Alias for notEqualTo.

Returns

'a -> Constraint<'a>

greaterThan

greaterThan
Member
Alias for greaterThan.

Returns

'a -> Constraint<'a>

lessThan

lessThan
Member
Alias for lessThan.

Returns

'a -> Constraint<'a>

atLeast

atLeast
Member
Alias for atLeast.

Returns

'a -> Constraint<'a>

atMost

atMost
Member
Alias for atMost.

Returns

'a -> Constraint<'a>

positive

positive
Member
Alias for positive.

Returns

Constraint<^value>

nonNegative

nonNegative
Member
Alias for nonNegative.

Returns

Constraint<^value>

negative

negative
Member
Alias for negative.

Returns

Constraint<^value>

nonPositive

nonPositive
Member
Alias for nonPositive.

Returns

Constraint<^value>

single

single
Member
Alias for single.

Returns

Constraint<^value>

atLeastOne

atLeastOne
Member
Alias for atLeastOne.

Returns

Constraint<^value>

atMostOne

atMostOne
Member
Alias for atMostOne.

Returns

Constraint<^value>

moreThanOne

moreThanOne
Member
Alias for moreThanOne.

Returns

Constraint<^value>

notContains

notContains expected
Member
Alias for notContains.

Parameters

NameTypeDescription
expected'value

Returns

Constraint<^container>

multipleOf

multipleOf divisor
Member
Alias for multipleOf.

Parameters

NameTypeDescription
divisor^a

Returns

Constraint<^a>

finite

finite
Member
Alias for finite.

Returns

Constraint<float>

finite32

finite32
Member
Alias for finite32.

Returns

Constraint<float32>

notWith

notWith
Member
Alias for notWith.

Returns

string -> Constraint<'a> -> Constraint<'a>

custom

custom
Member
Alias for custom.

Returns

string -> ('a -> bool) -> Constraint<'a>

customLocalized

customLocalized
Member
Alias for customLocalized.

Returns

string -> string -> ('a -> bool) -> Constraint<'a>

customWith

customWith
Member
Alias for customWith.

Returns

string -> ('a -> Result<unit, Violation>) -> Constraint<'a>

contramap

contramap
Member
Alias for contramap.

Returns

('a -> 'b) -> Constraint<'b> -> Constraint<'a>

describe

describe
Member
Alias for describe.

Returns

string -> Constraint<'a> -> Constraint<'a>

orError

orError failure result
Member
Replaces a failed constraint's violation with the supplied error.

Parameters

NameTypeDescription
failure'a
resultResult<'b, 'c>

Returns

Result<'b, 'a>

Verification Examples

value |> Constraint.guard present |> orError NameRequired

mapError

mapError mapper result
Member
Maps a failed constraint's violation with the supplied function.

Parameters

NameTypeDescription
mapper'a -> 'b
resultResult<'c, 'a>

Returns

Result<'c, 'b>

Verification Examples

value |> Constraint.guard (greaterThan 0) |> mapError InvalidQuantity

Examples

module SignupRules =
    open Reified.ConstraintDSL

    let age : Constraint<int> = atLeast 13
    let contact : Constraint<string> = Constraint.all [ present; email ]
    let requireContact value = value |> Constraint.guard contact |> orError EmailRequired