pub type Dimension<T, L, M, I, K, N, J> = (T, L, M, I, K, N, J);Expand description
Type-level dimension representation.
Type parameters represent exponents for each SI base unit:
- T: Time (second, s)
- L: Length (metre, m)
- M: Mass (kilogram, kg)
- I: Electric Current (ampere, A)
- K: Thermodynamic Temperature (kelvin, K)
- N: Amount of Substance (mole, mol)
- J: Luminous Intensity (candela, cd)
Custom dimensions are aliases with concrete exponents:
use danwi::dimension::{Dimension, N3, P1, Z0};
use danwi::prelude::*;
// jerk (m/s³) = L·T⁻³
type Jerk = Dimension<N3, P1, Z0, Z0, Z0, Z0, Z0>;
let jerk: Quantity<f64, Jerk> = 4.0.mps2() / 2.0.s();
assert_eq!(jerk.value(), 2.0);