#[non_exhaustive]pub enum ValidationOutcome {
Valid,
Invalid(Vec<Violation>),
Skipped {
reason: SkipReason,
prerequisites: Vec<FailureId>,
},
}Expand description
The observable result of executing one bound validator occurrence.
§Examples
use qubit_validator::{ValidationOutcome, ValidatorId, Violation, ViolationCode};
let accepted = ValidationOutcome::valid();
let rejected = ValidationOutcome::invalid(vec![Violation::new(
ValidatorId::new("text.required"),
ViolationCode::new("text.blank"),
)])?;
assert!(matches!(accepted, ValidationOutcome::Valid));
assert!(matches!(rejected, ValidationOutcome::Invalid(violations) if violations.len() == 1));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Valid
Input is valid.
Invalid(Vec<Violation>)
Input is invalid.
Skipped
Execution was skipped by the caller’s orchestration policy.
Fields
reason: SkipReasonReason for skipping.
Implementations§
Source§impl ValidationOutcome
impl ValidationOutcome
Sourcepub const fn valid() -> Self
pub const fn valid() -> Self
Creates a successful validation outcome.
§Returns
A valid outcome with no violations or prerequisites.
Sourcepub fn invalid(
violations: Vec<Violation>,
) -> Result<Self, ValidationOutcomeError>
pub fn invalid( violations: Vec<Violation>, ) -> Result<Self, ValidationOutcomeError>
Creates an invalid outcome with one or more violations.
§Parameters
violations: Non-empty safe violations produced by the validator.
§Returns
An invalid outcome containing violations.
§Errors
Returns ValidationOutcomeError::EmptyViolations when violations
is empty.
Sourcepub fn missing_optional() -> Self
pub fn missing_optional() -> Self
Creates an outcome skipped because the optional target is absent.
§Returns
A skipped outcome with reason MissingOptional and no prerequisites.
Sourcepub fn failed_prerequisite(
prerequisites: Vec<FailureId>,
) -> Result<Self, ValidationOutcomeError>
pub fn failed_prerequisite( prerequisites: Vec<FailureId>, ) -> Result<Self, ValidationOutcomeError>
Creates an outcome skipped after at least one prerequisite failed.
Every ID must refer to a failure already retained in the report that records this outcome.
§Parameters
prerequisites: Non-empty IDs of failures retained in the report.
§Returns
A skipped outcome with reason FailedPrerequisite and the supplied IDs.
§Errors
Returns ValidationOutcomeError::EmptyPrerequisites when
prerequisites is empty.