Как реализовать интерфейс с помощью 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;
}