auto static method

Dimension auto(
  1. Object value,
  2. Unit units
)

Implementation

static Dimension<dynamic> auto(Object value, Unit units) {
  final id = units.id;
  if (value is Dimension) {
    return value.to(units);
  }

  final double val = (value as num).toDouble();

  if (id < 0) return Ratio(val, units);
  if (id >= 0 && id < 10) return Angular(val, units);
  if (id >= 10 && id < 20) return Distance(val, units);
  if (id >= 30 && id < 40) return Energy(val, units);
  if (id >= 40 && id < 50) return Pressure(val, units);
  if (id >= 50 && id < 60) return Temperature(val, units);
  if (id >= 60 && id < 70) return Velocity(val, units);
  if (id >= 70 && id < 80) return Weight(val, units);
  if (id >= 80 && id < 90) return Time(val, units);
  if (id >= 90 && id < 100) return Torque(val, units);

  throw Exception('Unit ID $id is not supported for casting');
}