format method

String format({
  1. Printer<T>? valuePrinter,
  2. Printer<String>? paddingPrinter,
  3. Printer<String>? ellipsesPrinter,
  4. bool limit = true,
  5. int leadingItems = 3,
  6. int trailingItems = 3,
  7. String horizontalSeparator = ' ',
  8. String verticalSeparator = '\n',
  9. String horizontalEllipses = '\u2026',
  10. String verticalEllipses = '\u22ee',
  11. String diagonalEllipses = '\u22f1',
})

Returns a human readable representation of the matrix.

Implementation

String format({
  Printer<T>? valuePrinter,
  Printer<String>? paddingPrinter,
  Printer<String>? ellipsesPrinter,
  bool limit = true,
  int leadingItems = 3,
  int trailingItems = 3,
  String horizontalSeparator = ' ',
  String verticalSeparator = '\n',
  String horizontalEllipses = '\u2026',
  String verticalEllipses = '\u22ee',
  String diagonalEllipses = '\u22f1',
}) {
  final buffer = StringBuffer();
  valuePrinter ??= dataType.printer;
  paddingPrinter ??= const StandardPrinter<String>();
  ellipsesPrinter ??= const StandardPrinter<String>();
  for (var r = 0; r < rowCount; r++) {
    if (r > 0) {
      buffer.write(verticalSeparator);
    }
    if (limit && leadingItems <= r && r < rowCount - trailingItems) {
      final ellipsesVector =
          Vector.constant(DataType.string, colCount, value: verticalEllipses);
      buffer.write(ellipsesVector.format(
        valuePrinter: ellipsesPrinter,
        paddingPrinter: paddingPrinter,
        ellipsesPrinter: ellipsesPrinter,
        limit: limit,
        leadingItems: leadingItems,
        trailingItems: trailingItems,
        separator: horizontalSeparator,
        ellipses: diagonalEllipses,
      ));
      r = rowCount - trailingItems - 1;
    } else {
      buffer.write(rowUnchecked(r).format(
        valuePrinter: valuePrinter,
        paddingPrinter: paddingPrinter,
        ellipsesPrinter: ellipsesPrinter,
        limit: limit,
        leadingItems: leadingItems,
        trailingItems: trailingItems,
        separator: horizontalSeparator,
        ellipses: horizontalEllipses,
      ));
    }
  }
  return buffer.toString();
}