String iterableToShortString(Iterable iterable, [String leftDelimiter = '(', String rightDelimiter = ')'])

Convert an Iterable to a string like IterableBase.toString.

Allows using other delimiters than '(' and ')'.

Handles circular references where converting one of the elements to a string ends up converting iterable to a string again.

Source

static String iterableToShortString(Iterable iterable,
                                    [String leftDelimiter = '(',
                                     String rightDelimiter = ')']) {
  if (_isToStringVisiting(iterable)) {
    if (leftDelimiter == "(" && rightDelimiter == ")") {
      // Avoid creating a new string in the "common" case.
      return "(...)";
    }
    return "$leftDelimiter...$rightDelimiter";
  }
  List parts = [];
  _toStringVisiting.add(iterable);
  try {
    _iterablePartsToStrings(iterable, parts);
  } finally {
    assert(identical(_toStringVisiting.last, iterable));
    _toStringVisiting.removeLast();
  }
  return (new StringBuffer(leftDelimiter)
              ..writeAll(parts, ", ")
              ..write(rightDelimiter)).toString();
}