scaleToRateUnit method

  1. @override
AreaRate scaleToRateUnit(
  1. AreaRate 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
AreaRate scaleToRateUnit(AreaRate input, RateUnit rateUnit) {
  final scaledPeriod = rateUnit.duration;
  final scale = Rational.fromInt(scaledPeriod.inMicroseconds) /
      Rational.fromInt(input.period.inMicroseconds);
  final result = Area.fromSquareMeters(input.value.squareMeters * scale)
      .per(scaledPeriod);
  return result;
}