Как реализовать интерфейс с помощью built_value EnumClass

В built_value README утверждает, что EnumClasses:

... настоящие классы, которые могут содержать код и реализовывать интерфейсы

Как я могу сделать свой EnumClass, например. MassUnit правильно реализовать приведенный ниже интерфейс?

abstract class Unit {
  Unit get siUnit;
  String get symbol;
  double get siCoefficient;
  double get siConstant;

  double fromSi(double siValue) => (siValue - siConstant) / siCoefficient;

  double toSi(double value) => (siConstant + value) * siCoefficient;

  double to(Unit other, double value) {
    assert(isCompatible(other), "${this.symbol} and ${other.symbol} are not compatible units" );
    return other.fromSi(other.toSi(value));
  }

  bool isCompatible(Unit other) => other.siUnit == siUnit;
}

0 ответов

Другие вопросы по тегам