validate method
Validates value and returns a ValidationResult.
Returns Valid if the value passes validation, or Invalid/InvalidAll if it fails.
Implementation
@override
ValidationResult<TIn, E> validate(TIn value) {
final transformed = transform(value);
if (transformed == null) {
return Invalid(onNull);
}
final result = then.validate(transformed);
return switch (result) {
Valid() => Valid(value),
Invalid(:final error) => Invalid(error),
InvalidAll(:final errors) => InvalidAll(errors),
};
}