CachedFormix<T, E> class

A validator wrapper that caches the last validation result.

Returns the cached result if the input value hasn't changed, avoiding redundant validation computations.

final validator = StringRules.email(error: 'Invalid email').cached();

// First call computes the result
validator.validate('test@example.com'); // Computed

// Same value returns cached result instantly
validator.validate('test@example.com'); // Cached!

// Different value recomputes
validator.validate('other@example.com'); // Computed

This is particularly useful for:

  • Form fields that validate on every keystroke
  • Expensive validation operations (regex, async-like patterns)
  • Validators used multiple times with the same value
Inheritance
Available extensions

Constructors

CachedFormix(Formix<T, E> _inner)
Creates a cached wrapper around inner.

Properties

cachedResult ValidationResult<T, E>?
Returns the cached result, or null if no validation has occurred.
no setter
hasCachedResult bool
Returns true if there is a cached result available.
no setter
hashCode int
The hash code for this object.
no setterinherited
inner Formix<T, E>
The underlying validator being cached.
no setter
lastValue → T?
Returns the last validated value, or null if no validation has occurred.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

andThen(Formix<T, E> next) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Chains this validator with next, running next only if this passes.
cached() CachedFormix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Wraps this validator with single-value caching.
invalidate() → void
Invalidates the cache, forcing recomputation on next validate call.
lazy() LazyFormix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Creates a lazy validator that defers instantiation until first use.
lruCached({int maxSize = 10}) LruCachedFormix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Wraps this validator with LRU (Least Recently Used) caching.
mapError<E2>(E2 mapper(E error)) Formix<T, E2>

Available on Formix<T, E>, provided by the FormixExtensions extension

Maps errors from type E to type E2.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
optional({bool isEmpty(T value)?}) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Makes this validator optional - skips validation when empty.
recover(T onError(List<E> errors)) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Recovers from validation errors with a default value.
tap({void onValid(T value)?, void onInvalid(List<E> errors)?}) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Applies side effects without affecting validation.
toString() String
A string representation of this object.
inherited
validate(T value) ValidationResult<T, E>
Validates value and returns a ValidationResult.
override
when(bool condition(T value)) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Conditionally applies this validator based on condition.
whenNot(bool condition(T value)) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Conditionally skips this validator based on condition.
withMessageFormatter(ErrorMessageFormatter<E> formatter) Formix<T, String>

Available on Formix<T, E>, provided by the FormixExtensions extension

Maps errors to user-facing messages using formatter.

Operators

operator ==(Object other) bool
The equality operator.
inherited