scaleToRateUnit method

  1. @override
TimeRate scaleToRateUnit(
  1. TimeRate input,
  2. RateUnit rateUnit
)
override

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;
}