diff options
Diffstat (limited to 'lib/data/models/units.dart')
-rw-r--r-- | lib/data/models/units.dart | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/data/models/units.dart b/lib/data/models/units.dart index 9e71213..c299a12 100644 --- a/lib/data/models/units.dart +++ b/lib/data/models/units.dart @@ -4,32 +4,39 @@ enum DistanceUnit { kilometers, miles } enum TemperatureUnit { celsius, fahrenheit } +enum PressureUnit { kilopascals, psi } + @immutable class Units { final DistanceUnit distanceUnit; final TemperatureUnit temperatureUnit; + final PressureUnit pressureUnit; const Units( this.distanceUnit, this.temperatureUnit, + this.pressureUnit, ); const Units.initial() : distanceUnit = DistanceUnit.kilometers, - temperatureUnit = TemperatureUnit.celsius; + temperatureUnit = TemperatureUnit.celsius, + pressureUnit = PressureUnit.kilopascals; Units copyWith({ DistanceUnit? distanceUnit, TemperatureUnit? temperatureUnit, + PressureUnit? pressureUnit, }) { return Units( distanceUnit ?? this.distanceUnit, temperatureUnit ?? this.temperatureUnit, + pressureUnit ?? this.pressureUnit, ); } @override String toString() => - 'Units(distanceUnit: $distanceUnit, temperatureUnit: $temperatureUnit)'; + 'Units(distanceUnit: $distanceUnit, temperatureUnit: $temperatureUnit, pressureUnit: $pressureUnit)'; @override bool operator ==(Object other) { @@ -37,9 +44,11 @@ class Units { return other is Units && other.distanceUnit == distanceUnit && - other.temperatureUnit == temperatureUnit; + other.temperatureUnit == temperatureUnit && + other.pressureUnit == pressureUnit; } @override - int get hashCode => distanceUnit.hashCode ^ temperatureUnit.hashCode; + int get hashCode => + distanceUnit.hashCode ^ temperatureUnit.hashCode ^ pressureUnit.hashCode; } |