joinTo<S extends StringSink> method

S joinTo<S extends StringSink>({
  1. required S buffer,
  2. Object separator = ', ',
  3. Object prefix = '',
  4. Object postfix = '',
  5. int limit = -1,
  6. Object truncated = '...',
  7. Object transform(
    1. E element
    )?,
})

Appends the String from all the elements separated using separator and using the given prefix and postfix if supplied.

Implementation

S joinTo<S extends StringSink>({
  required S buffer,
  Object separator = ', ',
  Object prefix = '',
  Object postfix = '',
  int limit = -1,
  Object truncated = '...',
  Object Function(E element)? transform,
}) {
  buffer.write(prefix);
  var count = 0;
  for (final element in this) {
    if (++count > 1) buffer.write(separator);
    if (limit < 0 || count <= limit) {
      buffer.write(transform?.call(element) ?? element);
    } else {
      break;
    }
  }
  if (limit >= 0 && count > limit) buffer.write(truncated);
  buffer.write(postfix);
  return buffer;
}