entries property

Iterable<MapEntry<K, V>> entries

An iterable over this node and all its children

Implementation

Iterable<MapEntry<K, V>> get entries sync* {
  final queue = [this];
  while (queue.isNotEmpty) {
    final element = queue.removeLast();
    if (element.hasKeyAndValue) {
      yield MapEntry(element.key, element.value);
    }
    final children = element.children
        .where((element) => element.hasKeyAndValue || element.hasChildren);
    queue.addAll(children.toList().reversed);
  }
}