formatSummary static method
Format multiple deltas as a summary.
Example:
print(NegativeByteFormatter.formatSummary([
SizeDelta(1000, 500),
SizeDelta(2000, 3000),
]));
// "Net: +512 B (1 increase, 1 decrease)"
Implementation
static String formatSummary(
List<SizeDelta> deltas, {
int decimals = 2,
}) {
if (deltas.isEmpty) return 'No changes';
final netChange = deltas.fold<double>(
0,
(sum, delta) => sum + delta.difference,
);
final increases = deltas.where((d) => d.isIncrease).length;
final decreases = deltas.where((d) => d.isDecrease).length;
final unchanged = deltas.where((d) => d.isUnchanged).length;
final netStr = format(netChange,
decimals: decimals, options: NegativeValueOptions.delta);
final parts = <String>[];
if (increases > 0) {
parts.add('$increases increase${increases > 1 ? 's' : ''}');
}
if (decreases > 0) {
parts.add('$decreases decrease${decreases > 1 ? 's' : ''}');
}
if (unchanged > 0) {
parts.add('$unchanged unchanged');
}
return 'Net: $netStr (${parts.join(', ')})';
}