From a07f4ff774dd0ba0da3a502909d078ccf3e0c63f Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sun, 5 Feb 2023 13:35:23 -0330 Subject: pressure --- src/pressure/mod.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/pressure/mod.rs (limited to 'src/pressure/mod.rs') diff --git a/src/pressure/mod.rs b/src/pressure/mod.rs new file mode 100644 index 0000000..9b91aa5 --- /dev/null +++ b/src/pressure/mod.rs @@ -0,0 +1,29 @@ +mod bar; +mod kilopascal; +mod psi; +mod unit; + +pub use bar::Bar; +pub use kilopascal::Kilopascal; +pub use psi::Psi; +pub use unit::Unit; + +pub fn convert>(val: F, from: Unit, to: Unit) -> f64 { + match from { + Unit::Kilopascal => match to { + Unit::Kilopascal => val.into(), + Unit::Bar => Bar::from(Kilopascal(val.into())).0, + Unit::Psi => Psi::from(Kilopascal(val.into())).0, + }, + Unit::Bar => match to { + Unit::Bar => val.into(), + Unit::Kilopascal => Kilopascal::from(Bar(val.into())).0, + Unit::Psi => Psi::from(Bar(val.into())).0, + }, + Unit::Psi => match to { + Unit::Psi => val.into(), + Unit::Kilopascal => Kilopascal::from(Psi(val.into())).0, + Unit::Bar => Bar::from(Psi(val.into())).0, + }, + } +} -- cgit v1.2.3