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
TimeRate scaleToRateUnit(TimeRate input, RateUnit rateUnit) {
final scaledPeriod = rateUnit.duration;
final scale = Rational.fromInt(scaledPeriod.inMicroseconds) /
Rational.fromInt(input.period.inMicroseconds);
final result =
Time.fromSeconds(input.value.seconds * scale).per(scaledPeriod);
return result;
}