roundToProfile method
ByteConverter
roundToProfile(
- StorageProfile profile, {
- String? alignment,
- RoundingMode? rounding,
Aligns this value to a StorageProfile bucket.
final profile = StorageProfile.ssd();
final size = ByteConverter.fromKiloBytes(100);
print(size.storage.roundToProfile(profile));
Implementation
ByteConverter roundToProfile(
StorageProfile profile, {
String? alignment,
RoundingMode? rounding,
}) {
final resolved = profile.resolve(alignment);
final blockSize = resolved.blockSizeBytes.toDouble();
final mode = profile.roundingFor(
alignment: alignment,
override: rounding,
);
final quotient = _bytes / blockSize;
final multiplier = switch (mode) {
RoundingMode.floor => quotient.floor(),
RoundingMode.ceil => quotient.ceil(),
RoundingMode.round => quotient.round(),
};
return ByteConverter(multiplier * blockSize);
}