IterableSignalImpl<E> class

Implementation of IterableSignal that computes its value from a getter function.

This is the concrete implementation of the IterableSignal interface. IterableSignal extends Computed to provide reactive iterable functionality. The iterable is computed on-demand and cached until dependencies change, making it efficient for expensive iterable operations.

See IterableSignal for the public interface and usage examples.

Example:

final numbers = Signal([1, 2, 3, 4, 5]);

// Create reactive iterable that filters even numbers
final evenNumbers = IterableSignal(() =>
  numbers.value.where((n) => n.isEven)
);

// Use like any iterable
print('Even numbers: ${evenNumbers.toList()}'); // [2, 4]

// React to changes
Effect(() {
  print('Count of even numbers: ${evenNumbers.length}');
});

numbers.value = [1, 2, 3, 4, 5, 6]; // Triggers effect: "Count of even numbers: 3"
Inheritance
Implemented types
Mixed-in types
Available extensions

Constructors

IterableSignalImpl(Iterable<E> getter(), {JoltDebugOption? debug})
Creates a reactive iterable with the given getter function.

Properties

deps ↔ Link?
First dependency link in the chain.
getter/setter pairinherited
depsTail ↔ Link?
Last dependency link in the chain.
getter/setter pairinherited
equals → EqualFn?
finalinherited
first → E
The first element.
no setterinherited
firstOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The first element of this iterator, or null if the iterable is empty.
no setter
flags ↔ int
Reactive flags for this node.
getter/setter pairinherited
getter → Iterable<E> Function()
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
indexed → Iterable<(int, T)>

Available on Iterable<T>, provided by the IterableExtensions extension

Pairs of elements of the indices and elements of this iterable.
no setter
isDisposed → bool
Whether this node has been disposed.
no setterinherited
isEmpty → bool
Whether this collection has no elements.
no setterinherited
isNotEmpty → bool
Whether this collection has at least one element.
no setterinherited
iterator → Iterator<E>
Returns an iterator over the elements of this iterable.
no setterinherited
last → E
The last element.
no setterinherited
lastOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The last element of this iterable, or null if the iterable is empty.
no setter
length → int
The number of elements in this Iterable.
no setterinherited
nonNulls → Iterable<T>

Available on Iterable<T?>, provided by the NullableIterableExtensions extension

The non-null elements of this iterable.
no setter
peek → Iterable<E>
Returns the current computed value without establishing a reactive dependency.
no setterinherited
peekCached → Iterable<E>
Returns the cached computed value without establishing a reactive dependency.
no setterinherited
pendingValue ↔ Iterable<E>?
getter/setter pairinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
single → E
Checks that this iterable has only one element, and returns that element.
no setterinherited
singleOrNull → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The single element of this iterator, or null.
no setter
subs ↔ Link?
First subscriber link in the chain.
getter/setter pairinherited
subsTail ↔ Link?
Last subscriber link in the chain.
getter/setter pairinherited
toJSIterable → JSIterable<T>

Available on Iterable<T>, provided by the IterableToJSIterable extension

A JSIterable wrapper that proxies to the Dart iterable API.
no setter
value → Iterable<E>
The current iterable value.
no setterinherited
wait → Future<List<T>>

Available on Iterable<Future<T>>, provided by the FutureIterable extension

Waits for futures in parallel.
no setter

Methods

any(bool test(E element)) → bool
Checks whether any element of this iterable satisfies test.
inherited
asNameMap() → Map<String, T>

Available on Iterable<T>, provided by the EnumByName extension

Creates a map from the names of enum values to the values.
byName(String name) → T

Available on Iterable<T>, provided by the EnumByName extension

Finds the enum value in this list with name name.
cast<R>() → Iterable<R>
A view of this iterable as an iterable of R instances.
inherited
contains(Object? element) → bool
Whether the collection contains an element equal to element.
inherited
dispose() → void
Disposes this node and cleans up resources.
inherited
elementAt(int index) → E
Returns the indexth element.
inherited
elementAtOrNull(int index) → T?

Available on Iterable<T>, provided by the IterableExtensions extension

The element at position index of this iterable, or null.
every(bool test(E element)) → bool
Checks whether every element of this iterable satisfies test.
inherited
expand<T>(Iterable<T> toElements(E element)) → Iterable<T>
Expands each element of this Iterable into zero or more elements.
inherited
firstWhere(bool test(E element), {E orElse()?}) → E
The first element that satisfies the given predicate test.
inherited
fold<T>(T initialValue, T combine(T previousValue, E element)) → T
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
inherited
followedBy(Iterable<E> other) → Iterable<E>
Creates the lazy concatenation of this iterable and other.
inherited
forEach(void action(E element)) → void
Invokes action on each element of this iterable in iteration order.
inherited
join([String separator = ""]) → String
Converts each element to a String and concatenates the strings.
inherited
lastWhere(bool test(E element), {E orElse()?}) → E
The last element that satisfies the given predicate test.
inherited
map<T>(T toElement(E e)) → Iterable<T>
The current elements of this iterable modified by toElement.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notify([bool force = false]) → void
Manually notifies all subscribers that this computed value has changed.
inherited
onDispose() → void
Disposes the computed value and cleans up resources.
inherited
reduce(E combine(E value, E element)) → E
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
inherited
singleWhere(bool test(E element), {E orElse()?}) → E
The single element that satisfies test.
inherited
skip(int count) → Iterable<E>
Creates an Iterable that provides all but the first count elements.
inherited
skipWhile(bool test(E element)) → Iterable<E>
Creates an Iterable that skips leading elements while test is satisfied.
inherited
take(int count) → Iterable<E>
Creates a lazy iterable of the count first elements of this iterable.
inherited
takeWhile(bool test(E element)) → Iterable<E>
Creates a lazy iterable of the leading elements satisfying test.
inherited
toList({bool growable = true}) → List<E>
Creates a List containing the elements of this Iterable.
inherited
toSet() → Set<E>
Creates a Set containing the same elements as this iterable.
inherited
toString() → String
Returns a string representation of the iterable.
inherited
where(bool test(E element)) → Iterable<E>
Creates a new lazy Iterable with all elements that satisfy the predicate test.
inherited
whereType<T>() → Iterable<R>
Creates a new lazy Iterable with all elements that have type T.
inherited

Operators

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