LruCachedFormix<T, E> class
A validator wrapper that caches multiple validation results using LRU eviction.
Maintains a cache of the most recently validated values and their results. When the cache reaches capacity, the least recently used entry is evicted.
final validator = StringRules.email(error: 'Invalid').lruCached(maxSize: 10);
// Each unique value is cached
validator.validate('a@example.com'); // Computed, cached
validator.validate('b@example.com'); // Computed, cached
validator.validate('a@example.com'); // Cache hit!
This is particularly useful for:
- Autocomplete/search fields with multiple recent values
- Dropdowns or select fields where users switch between options
- Any scenario where multiple distinct values are validated repeatedly
- Inheritance
- Available extensions
Constructors
-
LruCachedFormix(Formix<
T, E> _inner, {int maxSize = 10}) - Creates an LRU cached wrapper around inner.
Properties
-
cachedValues
→ List<
T> -
Returns all currently cached values in access order (oldest first).
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
-
inner
→ Formix<
T, E> -
The underlying validator being cached.
no setter
- maxSize → int
-
The maximum number of cached results.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- size → int
-
The current number of cached results.
no setter
Methods
-
andThen(
Formix< T, E> next) → Formix<T, E> -
Available on Formix<
Chains this validator withT, E> , provided by the FormixExtensions extensionnext, runningnextonly if this passes. -
cached(
) → CachedFormix< T, E> -
Available on Formix<
Wraps this validator with single-value caching.T, E> , provided by the FormixExtensions extension -
clear(
) → void - Clears all cached results.
-
containsKey(
T value) → bool -
Returns
trueif the value is in the cache. -
lazy(
) → LazyFormix< T, E> -
Available on Formix<
Creates a lazy validator that defers instantiation until first use.T, E> , provided by the FormixExtensions extension -
lruCached(
{int maxSize = 10}) → LruCachedFormix< T, E> -
Available on Formix<
Wraps this validator with LRU (Least Recently Used) caching.T, E> , provided by the FormixExtensions extension -
mapError<
E2> (E2 mapper(E error)) → Formix< T, E2> -
Available on Formix<
Maps errors from typeT, E> , provided by the FormixExtensions extensionEto typeE2. -
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<
Makes this validator optional - skips validation when empty.T, E> , provided by the FormixExtensions extension -
peek(
T value) → ValidationResult< T, E> ? -
Returns the cached result for
value, ornullif not cached. -
recover(
T onError(List< E> errors)) → Formix<T, E> -
Available on Formix<
Recovers from validation errors with a default value.T, E> , provided by the FormixExtensions extension -
remove(
T value) → bool - Removes a specific value from the cache.
-
tap(
{void onValid(T value)?, void onInvalid(List< E> errors)?}) → Formix<T, E> -
Available on Formix<
Applies side effects without affecting validation.T, E> , provided by the FormixExtensions extension -
toString(
) → String -
A string representation of this object.
inherited
-
validate(
T value) → ValidationResult< T, E> -
Validates
valueand returns a ValidationResult.override -
when(
bool condition(T value)) → Formix< T, E> -
Available on Formix<
Conditionally applies this validator based onT, E> , provided by the FormixExtensions extensioncondition. -
whenNot(
bool condition(T value)) → Formix< T, E> -
Available on Formix<
Conditionally skips this validator based onT, E> , provided by the FormixExtensions extensioncondition. -
withMessageFormatter(
ErrorMessageFormatter< E> formatter) → Formix<T, String> -
Available on Formix<
Maps errors to user-facing messages usingT, E> , provided by the FormixExtensions extensionformatter.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited