scaleToRateUnit method
Scales input
, which is assumed to be a rated unit of measurement, so that its rate is rateUnit
.
This method is irrelevant to non rated units of measurement, which can simply throw UnsupportedError.
Implementation
@override
WeightRate scaleToRateUnit(WeightRate input, RateUnit rateUnit) {
final scaledPeriod = rateUnit.duration;
final scale = Rational.fromInt(scaledPeriod.inMicroseconds) /
Rational.fromInt(input.period.inMicroseconds);
final result =
Weight.fromGrams(input.value.grams * scale).per(scaledPeriod);
return result;
}