use super::*;
pub struct SI;
impl SI {
pub fn value<T: Copy>(value: T) -> Value<T> {
Value::new(value)
}
pub fn _m<T: Copy, P: Prefix>(value: T) -> Metre_<T, P> {
Metre_::new(value)
}
pub fn m<T: Copy>(value: T) -> Metre<T> {
Metre_::new(value)
}
pub fn km<T: Copy>(value: T) -> KiloMetre<T> {
Metre_::new(value)
}
pub fn dm<T: Copy>(value: T) -> DeciMetre<T> {
Metre_::new(value)
}
pub fn cm<T: Copy>(value: T) -> CentiMetre<T> {
Metre_::new(value)
}
pub fn mm<T: Copy>(value: T) -> MilliMetre<T> {
Metre_::new(value)
}
pub fn _g<T: Copy, P: Prefix>(value: T) -> Gram_<T, P> {
Gram_::new(value)
}
pub fn kg<T: Copy>(value: T) -> KiloGram<T> {
Gram_::new(value)
}
pub fn g<T: Copy>(value: T) -> Gram<T> {
Gram_::new(value)
}
pub fn _s<T: Copy, P: Prefix>(value: T) -> Second_<T, P> {
Second_::new(value)
}
pub fn s<T: Copy>(value: T) -> Second<T> {
Second::new(value)
}
pub fn ms<T: Copy>(value: T) -> MilliSecond<T> {
MilliSecond::new(value)
}
}
pub type Value<T> = Quantity<T, Exp0, Exp0, Exp0, Exp0, Exp0>;
pub type Metre_<T, P> = Quantity<T, Exp1<P>, Exp0, Exp0, Exp0, Exp0>;
pub type Metre<T> = Metre_<T, One>;
pub type KiloMetre<T> = Metre_<T, Kilo>;
pub type DeciMetre<T> = Metre_<T, Deci>;
pub type CentiMetre<T> = Metre_<T, Centi>;
pub type MilliMetre<T> = Metre_<T, Milli>;
pub type Gram_<T, P> = Quantity<T, Exp0, Exp1<P>, Exp0, Exp0, Exp0>;
pub type Gram<T> = Gram_<T, One>;
pub type KiloGram<T> = Gram_<T, Kilo>;
pub type Second_<T, P> = Quantity<T, Exp0, Exp0, Exp1<P>, Exp0, Exp0>;
pub type Second<T> = Second_<T, One>;
pub type MilliSecond<T> = Second_<T, Milli>;
pub type MicroSecond<T> = Second_<T, Micro>;
pub type NanoSecond<T> = Second_<T, Nano>;
pub type Ampere<T> = Quantity<T, Exp0, Exp0, Exp0, Exp1<One>, Exp0>;
pub type Kelvin<T> = Quantity<T, Exp0, Exp0, Exp0, Exp0, Exp1<One>>;
pub type Newton<T> = Quantity<T, Exp1<One>, Exp1<Kilo>, Exp_2<One>, Exp0, Exp0>;
pub type Pascal<T> = Quantity<T, Exp_1<One>, Exp1<Kilo>, Exp_2<One>, Exp0, Exp0>;
pub type Volt<T> = Quantity<T, Exp2<One>, Exp1<Kilo>, Exp_3<One>, Exp_1<One>, Exp0>;
pub type Joule<T> = Quantity<T, Exp2<One>, Exp1<Kilo>, Exp_2<One>, Exp0, Exp0>;
pub type Watt<T> = Quantity<T, Exp2<One>, Exp1<Kilo>, Exp_3<One>, Exp0, Exp0>;
pub type Hertz<T> = Quantity<T, Exp0, Exp0, Exp_1<One>, Exp0, Exp0>;
pub type Coulomb<T> = Quantity<T, Exp0, Exp0, Exp1<One>, Exp1<One>, Exp0>;
pub type Ohm<T> = Quantity<T, Exp2<One>, Exp1<Kilo>, Exp_3<One>, Exp_2<One>, Exp0>;
pub type Velocity<T> = Quantity<T, Exp1<One>, Exp0, Exp_1<One>, Exp0, Exp0>;
pub type Acceleration<T> = Quantity<T, Exp1<One>, Exp0, Exp_2<One>, Exp0, Exp0>;