ViolationUnion

PackageReified.Constraint
Inspects, traverses, and renders violations.

Specification

Kind
Union
Members
19
Examples
0
conjoinSignature
Violation.conjoin violations
alternativesSignature
Violation.alternatives violations
childrenSignature
Violation.children violation
flattenSignature
Violation.flatten violation
tryExpectationSignature
Violation.tryExpectation violation

Summary

NameSignatureSynopsis
Union cases
IsAtomicthis.IsAtomicNo description available.
IsAllthis.IsAllNo description available.
IsAnythis.IsAnyNo description available.
AtomicAtomic AtomicViolationOne indivisible failure.
AllAll(first, rest)Every listed failure occurred; the value failed several conjoined rules.
AnyAny(first, rest)No alternative succeeded; each listed failure is one rejected branch.
Operations
conjoinViolation.conjoin violationsGroups failures as a conjunction, returning None for no failures and the single failure unchanged for one.
alternativesViolation.alternatives violationsGroups failures as rejected alternatives, returning None for no failures and the single failure unchanged for one.
childrenViolation.children violationThe immediate children of a group, or an empty list for an atomic violation.
flattenViolation.flatten violationEvery leaf of a violation tree, in report order.
tryExpectationViolation.tryExpectation violationThe failing constraint's identity, when the violation is a single interpreted leaf.
tryActualViolation.tryActual violationThe value that failed, when the violation is a single leaf carrying a portable one.
tryDescriptionViolation.tryDescription violationThe author-supplied prose, when the violation is a single opaque leaf.
tryDescriptionKeyViolation.tryDescriptionKey violationThe author-supplied catalogue key, when the violation is a single opaque leaf carrying one.
renderViolation.render violationRenders a violation as an English sentence fragment with no trailing punctuation, keeping conjunction and alternative groups distinct.
toMessageTreeViolation.toMessageTree violationProjects a violation for an external localization system, preserving its grouping so a translator renders conjunctions and alternatives in their own word order.
renderWithViolation.renderWith lookup violationRenders a violation through a caller-supplied lookup, keeping the same grouping and separators render uses.
messageViolation.message renderer violationRenders a violation as a localized predicate, with no attribute noun.
fullMessageViolation.fullMessage renderer violationRenders a violation as a complete sentence fragment, with the attribute noun composed once.

Union cases

kind:member

IsAtomic

this.IsAtomic
Member

Returns

bool
kind:member

IsAll

this.IsAll
Member

Returns

bool
kind:member

IsAny

this.IsAny
Member

Returns

bool
kind:member

Atomic

Atomic AtomicViolation
Member
One indivisible failure.

Parameters

NameTypeDescription
ItemAtomicViolation

Returns

unit
kind:member

All

All(first, rest)
Member
Every listed failure occurred; the value failed several conjoined rules.

Parameters

NameTypeDescription
firstViolation
restViolation list

Returns

unit
kind:member

Any

Any(first, rest)
Member
No alternative succeeded; each listed failure is one rejected branch.

Parameters

NameTypeDescription
firstViolation
restViolation list

Returns

unit

Operations

kind:member

conjoin

Violation.conjoin violations
Member
Groups failures as a conjunction, returning None for no failures and the single failure unchanged for one.

Parameters

NameTypeDescription
violationsViolation list

Returns

Violation option

Verification Examples

[ first; second ] |> Violation.conjoin // Some (All (first, [ second ]))
kind:member

alternatives

Violation.alternatives violations
Member
Groups failures as rejected alternatives, returning None for no failures and the single failure unchanged for one.

Parameters

NameTypeDescription
violationsViolation list

Returns

Violation option

Verification Examples

[ first; second ] |> Violation.alternatives // Some (Any (first, [ second ]))
kind:member

children

Violation.children violation
Member
The immediate children of a group, or an empty list for an atomic violation.

Parameters

NameTypeDescription
violationViolation

Returns

Violation list
kind:member

flatten

Violation.flatten violation
Member
Every leaf of a violation tree, in report order.

Parameters

NameTypeDescription
violationViolation

Returns

AtomicViolation list

Verification Examples

violation |> Violation.flatten |> List.length
kind:member

tryExpectation

Violation.tryExpectation violation
Member
The failing constraint's identity, when the violation is a single interpreted leaf.

Parameters

NameTypeDescription
violationViolation

Returns

ConstraintAtom option
kind:member

tryActual

Violation.tryActual violation
Member
The value that failed, when the violation is a single leaf carrying a portable one.

Parameters

NameTypeDescription
violationViolation

Returns

ConstraintValue option
kind:member

tryDescription

Violation.tryDescription violation
Member
The author-supplied prose, when the violation is a single opaque leaf.

Parameters

NameTypeDescription
violationViolation

Returns

string option
kind:member

tryDescriptionKey

Violation.tryDescriptionKey violation
Member
The author-supplied catalogue key, when the violation is a single opaque leaf carrying one.

Parameters

NameTypeDescription
violationViolation

Returns

MessageDescriptor option
kind:member

render

Violation.render violation
Member
Renders a violation as an English sentence fragment with no trailing punctuation, keeping conjunction and alternative groups distinct.

Parameters

NameTypeDescription
violationViolation

Returns

string

Verification Examples

Violation.render (Atomic (Expected (PresenceAtom Present, None)))
 // "value must be present"
kind:member

toMessageTree

Violation.toMessageTree violation
Member
Projects a violation for an external localization system, preserving its grouping so a translator renders conjunctions and alternatives in their own word order.

Parameters

NameTypeDescription
violationViolation

Returns

MessageTree

Verification Examples

match Violation.toMessageTree violation with
 | MessageTree.Leaf (MessageLeaf.Localized descriptor) -> MessageDescriptor.key descriptor
 | _ -> "constraint.group"
kind:member

renderWith

Violation.renderWith lookup violation
Member
Renders a violation through a caller-supplied lookup, keeping the same grouping and separators render uses.

Parameters

NameTypeDescription
lookupMessageDescriptor -> string
violationViolation

Returns

string

Verification Examples

violation |> Violation.renderWith (fun descriptor -> resources.Format(descriptor.Key, descriptor.Arguments))
kind:member

message

Violation.message renderer violation
Member
Renders a violation as a localized predicate, with no attribute noun.

Parameters

NameTypeDescription
rendererRenderer
violationViolation

Returns

string

Verification Examples

violation |> Violation.message (renderer |> Renderer.context "signup" |> Renderer.attribute "name")
 // "must be at least 13, but was 11"
kind:member

fullMessage

Violation.fullMessage renderer violation
Member
Renders a violation as a complete sentence fragment, with the attribute noun composed once.

Parameters

NameTypeDescription
rendererRenderer
violationViolation

Returns

string

Verification Examples

violation |> Violation.fullMessage (signup |> Renderer.attribute "name")
 // "Name must be present"