aboutsummaryrefslogtreecommitdiffstats
path: root/mass.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-01-22 17:35:45 -0500
committerSam Anthony <sam@samanthony.xyz>2024-01-22 17:35:45 -0500
commit2a14395beedc4b3cef74dd7d8b44f14bb8a7ac79 (patch)
tree4216df7bc1ae2404c3fef879987eab50bbe89260 /mass.go
parent4f6384f449b50a95255837b1fc394b4ebe14caaf (diff)
parent9ad538983290fbd62da7f8d6db5a6dfe123a25c3 (diff)
downloadvolute-2a14395beedc4b3cef74dd7d8b44f14bb8a7ac79.zip
merge backend refactoring from main
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))
+ }
+}