1import 'package:health_data_store/health_data_store.dart';
 2
 3/// A unit blood pressure can be in.
 4///
 5/// While mmHg is more common, some devices use kPa
 6enum PressureUnit {
 7  /// Millimeters of mercury.
 8  mmHg,
 9  /// Kilo Pascal
10  kPa;
11
12  /// Encodes the pressure unit to [decode]able value.
13  int encode() => switch(this) {
14    PressureUnit.mmHg => 0,
15    PressureUnit.kPa => 1,
16  };
17  /// Decodes a pressure unit from an [encode]d value.
18  static PressureUnit? decode(int? encoded) => switch(encoded) {
19    0 => PressureUnit.mmHg,
20    1 => PressureUnit.kPa,
21    _ => null,
22  };
23
24  /// Converts a value to a [Pressure] of this [PressureUnit].
25  Pressure wrap(num value) => switch(this) {
26    PressureUnit.mmHg => Pressure.mmHg(value.toInt()),
27    PressureUnit.kPa => Pressure.kPa(value.toDouble()),
28  };
29}