QueueSignalMixin#
Kind:
class |
Package: package:signals_core
Class: QueueSignalMixin#
A mixin that adds reactive Queue methods and operations to a Signal
holding a Queue value.
This mixin delegates all standard Queue operations (such as mutations like add,
addAll, addFirst, addLast, removeFirst,
removeLast, and clear) to the
underlying queue, while ensuring that any reads register a dependency and any
mutations automatically trigger reactive updates.
This mixin only works with signals that have a value type extending Queue.
Example Usage#
import 'dart:collection';
import 'package:signals/signals.dart';
class MyQueueSignal extends Signal<Queue<int>>
with QueueSignalMixin<int, Queue<int>> {
MyQueueSignal(super.internalValue);
}
void main() {
final q = Queue<int>()..add(1);
final signal = MyQueueSignal(q);
effect(() {
print('Queue elements: $signal, Length: ${signal.length}');
}); // Prints: "Queue elements: {1}, Length: 1"
// Adding to the front of the queue (triggers updates)
signal.addFirst(0); // Prints: "Queue elements: {0, 1}, Length: 2"
// Adding to the back of the queue (triggers updates)
signal.addLast(2); // Prints: "Queue elements: {0, 1, 2}, Length: 3"
// Removing from the front of the queue (triggers updates)
final first = signal.removeFirst(); // Prints: "Queue elements: {1, 2}, Length: 2"
}
Since mutations on
QueueSignalMixin notify listeners automatically, you do not
need to assign signal.value = ... to force updates. Methods like addFirst,
addLast, removeFirst, and removeLast take care of notification.
Members of QueueSignalMixin#
| Member | Type | Signature | Description |
|---|---|---|---|
| add | method | dart void add(T value) | |
| addAll | method | dart void addAll(Iterable | |
| addFirst | method | dart void addFirst(T value) | |
| addLast | method | dart void addLast(T value) | |
| any | method | dart bool any(bool Function(T element) test) | |
| cast | method | dart Queue | |
| clear | method | dart void clear() | |
| contains | method | dart bool contains(Object? element) | |
| elementAt | method | dart T elementAt(int index) | |
| every | method | dart bool every(bool Function(T element) test) | |
| expand | method | dart Iterable expand(Iterable Function(T element) toElements) | |
| first | method | dart T first | |
| firstWhere | method | dart T firstWhere(bool Function(T element) test, {T Function()? orElse}) | |
| fold | method | dart U fold(U initialValue, U Function(U previousValue, T element) combine) | |
| followedBy | method | dart Iterable | |
| forEach | method | dart void forEach(void Function(T element) action) | |
| isEmpty | method | dart bool isEmpty | |
| isNotEmpty | method | dart bool isNotEmpty | |
| iterator | method | dart Iterator | |
| join | method | dart String join([String separator = ""]) | |
| last | method | dart T last | |
| lastWhere | method | dart T lastWhere(bool Function(T element) test, {T Function()? orElse}) | |
| length | method | dart int length | |
| map | method | dart Iterable map(U Function(T e) toElement) | |
| reduce | method | dart T reduce(T Function(T value, T element) combine) | |
| remove | method | dart bool remove(Object? value) | |
| removeFirst | method | dart T removeFirst() | |
| removeLast | method | dart T removeLast() | |
| removeWhere | method | dart void removeWhere(bool Function(T element) test) | |
| retainWhere | method | dart void retainWhere(bool Function(T element) test) | |
| single | method | dart T single | |
| singleWhere | method | dart T singleWhere(bool Function(T element) test, {T Function()? orElse}) | |
| skip | method | dart Iterable | |
| skipWhile | method | dart Iterable | |
| take | method | dart Iterable | |
| takeWhile | method | dart Iterable | |
| toList | method | dart List | |
| toSet | method | dart Set | |
| where | method | dart Iterable | |
| whereType | method | dart Iterable whereType() |
References#
The QueueSignalMixin type is referenced and used in the following pages:
- QueueSignalMixin (signals_flutter/mixins)
- signals_flutter
- QueueSignalMixin (signals_core/mixins)
- signals_core
- QueueSignalMixin (signals/mixins)
- signals