aboutsummaryrefslogtreecommitdiffstats
path: root/mass.go
diff options
context:
space:
mode:
Diffstat (limited to 'mass.go')
-rw-r--r--mass.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/mass.go b/mass.go
new file mode 100644
index 0000000..158bc37
--- /dev/null
+++ b/mass.go
@@ -0,0 +1,28 @@
+package main
+
+import (
+ "errors"
+ "fmt"
+)
+
+type MassFlowRate float32
+
+const (
+ KilogramsPerSecond MassFlowRate = 1
+ PoundsPerMinute MassFlowRate = 0.007_559_872_833
+)
+
+var MassFlowRateUnits = []string{"kg/s", "lb/min"}
+
+func ParseMassFlowRateUnit(s string) (MassFlowRate, error) {
+ // Each case corresponds to a value in MassFlowRateUnits.
+ switch s {
+ case "kg/s":
+ return KilogramsPerSecond, nil
+ case "lb/min":
+ return PoundsPerMinute, nil
+ default:
+ return *new(MassFlowRate), errors.New(
+ fmt.Sprintf("invalid mass flow rate unit: '%s'", s))
+ }
+}