format static method
String
format(
- double bytes, {
- NegativeValueOptions options = NegativeValueOptions.defaults,
- int decimals = 2,
Format a byte value that can be negative.
Example:
print(NegativeByteFormatter.format(-500000));
// "-488.28 KB" (default)
print(NegativeByteFormatter.format(
-500000,
options: NegativeValueOptions.parentheses,
));
// "(488.28 KB)"
Implementation
static String format(
double bytes, {
NegativeValueOptions options = NegativeValueOptions.defaults,
int decimals = 2,
}) {
final isNegative = bytes < 0;
final absBytes = bytes.abs();
final converter = ByteConverter(absBytes);
final baseStr = converter.display.auto(precision: decimals);
if (options.mode == NegativeDisplayMode.custom &&
options.customFormatter != null) {
return options.customFormatter!(bytes, isNegative);
}
if (!isNegative) {
return '${options.increasePrefix}$baseStr${options.increaseSuffix}';
}
switch (options.mode) {
case NegativeDisplayMode.minusSign:
return '${options.decreasePrefix}$baseStr${options.decreaseSuffix}';
case NegativeDisplayMode.parentheses:
return '($baseStr)';
case NegativeDisplayMode.decreaseSuffix:
return '$baseStr decrease';
case NegativeDisplayMode.reductionSuffix:
return '$baseStr reduction';
case NegativeDisplayMode.lossSuffix:
return '$baseStr loss';
case NegativeDisplayMode.absolute:
return baseStr;
case NegativeDisplayMode.custom:
// Already handled above
return baseStr;
}
}