use crate::*;
pub type Value<T> =
Qt<T, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>>;
pub fn value<T: Scalar>(value: T) -> Value<T> {
Value::new(value)
}
pub type Metre__<T, E> = Qt<T, E, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>>;
pub type Metre_<T, P> = Metre__<T, Scale<P, 1>>;
pub type Metre2_<T, P> = Metre__<T, Scale<P, 2>>;
pub type Metre2<T> = Metre__<T, Scale<One, 2>>;
pub type KiloMetre<T> = Metre_<T, Kilo>;
pub type HectoMetre<T> = Metre_<T, Hecto>;
pub type DecaMetre<T> = Metre_<T, Deca>;
pub type Metre<T> = Metre_<T, One>;
pub type DeciMetre<T> = Metre_<T, Deci>;
pub type CentiMetre<T> = Metre_<T, Centi>;
pub type MilliMetre<T> = Metre_<T, Milli>;
pub fn _m<T: Scalar, P: Prefix>(value: T) -> Metre_<T, P> {
Metre_::new(value)
}
pub fn kilo_metre<T: Scalar>(value: T) -> KiloMetre<T> {
Metre_::new(value)
}
pub fn hecto_metre<T: Scalar>(value: T) -> HectoMetre<T> {
Metre_::new(value)
}
pub fn deca_metre<T: Scalar>(value: T) -> DecaMetre<T> {
Metre_::new(value)
}
pub fn metre<T: Scalar>(value: T) -> Metre<T> {
Metre_::new(value)
}
pub fn deci_metre<T: Scalar>(value: T) -> DeciMetre<T> {
Metre_::new(value)
}
pub fn centi_metre<T: Scalar>(value: T) -> CentiMetre<T> {
Metre_::new(value)
}
pub fn milli_metre<T: Scalar>(value: T) -> MilliMetre<T> {
Metre_::new(value)
}
pub type Gram_<T, P> =
Qt<T, Scale<One, 0>, Scale<P, 1>, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>>;
pub type Gram<T> = Gram_<T, One>;
pub type KiloGram<T> = Gram_<T, Kilo>;
pub fn _g<T: Scalar, P: Prefix>(value: T) -> Gram_<T, P> {
Gram_::new(value)
}
pub fn kilo_gram<T: Scalar>(value: T) -> KiloGram<T> {
Gram_::new(value)
}
pub fn gram<T: Scalar>(value: T) -> Gram<T> {
Gram_::new(value)
}
pub type Second_<T, P> =
Qt<T, Scale<One, 0>, Scale<One, 0>, Scale<P, 1>, Scale<One, 0>, Scale<One, 0>>;
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 fn _s<T: Scalar, P: Prefix>(value: T) -> Second_<T, P> {
Second_::new(value)
}
pub fn second<T: Scalar>(value: T) -> Second<T> {
Second::new(value)
}
pub fn milli_second<T: Scalar>(value: T) -> MilliSecond<T> {
MilliSecond::new(value)
}
pub fn micro_second<T: Scalar>(value: T) -> MicroSecond<T> {
MicroSecond::new(value)
}
pub fn nano_second<T: Scalar>(value: T) -> NanoSecond<T> {
NanoSecond::new(value)
}
pub type Ampere<T> =
Qt<T, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>, Scale<One, 1>, Scale<One, 0>>;
pub fn ampere<T: Scalar>(value: T) -> Ampere<T> {
Ampere::new(value)
}
pub type Kelvin<T> =
Qt<T, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>, Scale<One, 0>, Scale<One, 1>>;
pub fn kelvin<T: Scalar>(value: T) -> Kelvin<T> {
Kelvin::new(value)
}
pub type Newton<T> =
Qt<T, Scale<One, 1>, Scale<Kilo, 1>, Scale<One, -2>, Scale<One, 0>, Scale<One, 0>>;
pub fn newton<T: Scalar>(value: T) -> Newton<T> {
Newton::new(value)
}
pub type Pascal<T> =
Qt<T, Scale<One, -1>, Scale<Kilo, 1>, Scale<One, -2>, Scale<One, 0>, Scale<One, 0>>;
pub fn pascal<T: Scalar>(value: T) -> Pascal<T> {
Pascal::new(value)
}
pub type Volt<T> =
Qt<T, Scale<One, 2>, Scale<Kilo, 1>, Scale<One, -3>, Scale<One, -1>, Scale<One, 0>>;
pub fn volt<T: Scalar>(value: T) -> Volt<T> {
Volt::new(value)
}
pub type Joule<T> =
Qt<T, Scale<One, 2>, Scale<Kilo, 1>, Scale<One, -2>, Scale<One, 0>, Scale<One, 0>>;
pub fn joule<T: Scalar>(value: T) -> Joule<T> {
Joule::new(value)
}
pub type Watt<T> =
Qt<T, Scale<One, 2>, Scale<Kilo, 1>, Scale<One, -3>, Scale<One, 0>, Scale<One, 0>>;
pub fn watt<T: Scalar>(value: T) -> Watt<T> {
Watt::new(value)
}
pub type Hertz<T> =
Qt<T, Scale<One, 0>, Scale<One, 0>, Scale<One, -1>, Scale<One, 0>, Scale<One, 0>>;
pub fn hertz<T: Scalar>(value: T) -> Hertz<T> {
Hertz::new(value)
}
pub type Coulomb<T> =
Qt<T, Scale<One, 0>, Scale<One, 0>, Scale<One, 1>, Scale<One, 1>, Scale<One, 0>>;
pub fn coulomb<T: Scalar>(value: T) -> Coulomb<T> {
Coulomb::new(value)
}
pub type Ohm<T> =
Qt<T, Scale<One, 2>, Scale<Kilo, 1>, Scale<One, -3>, Scale<One, -2>, Scale<One, 0>>;
pub fn ohm<T: Scalar>(value: T) -> Ohm<T> {
Ohm::new(value)
}
pub type Velocity_<T, PL, PT> =
Qt<T, Scale<PL, 1>, Scale<One, 0>, Scale<PT, -1>, Scale<One, 0>, Scale<One, 0>>;
pub type Velocity<T> =
Qt<T, Scale<One, 1>, Scale<One, 0>, Scale<One, -1>, Scale<One, 0>, Scale<One, 0>>;
pub type Acceleration<T> =
Qt<T, Scale<One, 1>, Scale<One, 0>, Scale<One, -2>, Scale<One, 0>, Scale<One, 0>>;