Iterable<int> ancestors(int entryId) sync* { var currEntryId = entryId; while (isIdValid(currEntryId)) { yield currEntryId; currEntryId = entryMap[currEntryId]!.parentId; } }