1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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<F: Into<f64>>(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,
},
}
}
|