main
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}