ancestors method

Iterable<UnixPath> ancestors()

Produces an iterator over Path and its ancestors. e.g. /a/b/c will produce /a/b/c, /a/b, /a, and /.

Implementation

Iterable<UnixPath> ancestors() sync* {
  yield this;
  UnixPath? current = parent().v;
  while (current != null) {
    yield current;
    current = current.parent().v;
  }
}