formatDiagnosticReport function
Format a diagnostic report for display.
Implementation
String formatDiagnosticReport(List<DiagnosticCheck> checks) {
final buffer = StringBuffer();
buffer.writeln('System Diagnostics');
buffer.writeln('=' * 40);
for (final check in checks) {
final icon = switch (check.status) {
DiagnosticStatus.pass => '✓',
DiagnosticStatus.warn => '⚠',
DiagnosticStatus.fail => '✗',
DiagnosticStatus.skip => '○',
};
buffer.write('$icon ${check.name}');
if (check.detail != null) {
buffer.write(': ${check.detail}');
}
if (check.duration != null) {
buffer.write(' (${check.duration!.inMilliseconds}ms)');
}
buffer.writeln();
}
final passed = checks.where((c) => c.status == DiagnosticStatus.pass).length;
final warned = checks.where((c) => c.status == DiagnosticStatus.warn).length;
final failed = checks.where((c) => c.status == DiagnosticStatus.fail).length;
buffer.writeln('=' * 40);
buffer.writeln('$passed passed, $warned warnings, $failed failed');
return buffer.toString();
}