validate method
Validates value and returns a ValidationResult.
Returns Valid if the value passes validation, or Invalid/InvalidAll if it fails.
Implementation
@override
ValidationResult<T, E> validate(T value) {
// Return cached result if input unchanged
if (_hasValidated && _valuesEqual(_lastValue as T, value)) {
return _lastResult!;
}
_lastValue = value;
_lastResult = _inner.validate(value);
_hasValidated = true;
return _lastResult!;
}