enumerator method

Tree enumerator(
  1. Object enumerator
)

Implementation

Tree enumerator(Object enumerator) {
  // Back-compat: map our preset enumerators onto v2 enumerator/indenter funcs.
  if (enumerator is TreeEnumerator) {
    final e = enumerator;

    String indenter(List<TreeNode> children, int index) {
      final isLast = children.length - 1 == index;
      final dashWidth = Style.visibleLength(e.dash);
      final pipeWidth = Style.visibleLength(e.pipe);
      final w = pipeWidth + dashWidth;
      if (isLast) return ' ' * w;
      return '${e.pipe}${' ' * dashWidth}';
    }

    String enumr(List<TreeNode> children, int index) {
      final isLast = children.length - 1 == index;
      return '${isLast ? e.elbow : e.tee}${e.dash}';
    }

    return enumeratorFunc(enumr).indenterFunc(indenter);
  }

  // Unknown enumerator object: fall back to the default.
  return enumeratorFunc(_defaultEnumerator).indenterFunc(_defaultIndenter);
}