Как реализовать интерфейс со встроенным значением EnumClass - PullRequest
0 голосов
/ 12 октября 2019

README built_value заявляет, что 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;
}
...