buildSlowDescription function

String buildSlowDescription(
  1. String template,
  2. List args
)

Build a human-readable description from tagged arguments.

Implementation

String buildSlowDescription(String template, List<dynamic> args) {
  var result = template;
  for (var i = 0; i < args.length; i++) {
    final v = args[i];
    String replacement;
    if (v is List) {
      replacement = 'List[${v.length}]';
    } else if (v is Map) {
      replacement = 'Map{${v.length} keys}';
    } else if (v is String) {
      replacement = v.length > 80 ? '${v.substring(0, 80)}...' : v;
    } else {
      replacement = '$v';
    }
    result = result.replaceFirst('{$i}', replacement);
  }
  return result;
}