Macro uom::ISQ

source ·
macro_rules! ISQ {
    ($path:path) => { ... };
    ($path:path, $V:ty) => { ... };
    ($path:path, $V:ty, $U:tt) => { ... };
}
Expand description

Macro to implement quantity type aliases for a specific system of units and value storage type.

  • $system: Path to the module where the system! macro was run (e.g. uom::si).
  • $V: Underlying value storage type (e.g. f32).
  • $U: Optional. Base units. Pass as a tuple with the desired units: (e.g. (meter, kilogram, second, ampere, kelvin, mole, candela)). The system’s base units will be used if no value is provided. When a value is provided a new trait type alias, Units, is defined. Note that a unit with a non-zero constant factor is not currently supported as a base unit.

An example invocation is given below for a meter-kilogram-second system setup in the module mks with a system of quantities name Q. The #[macro_use] attribute must be used when including the uom crate to make macros for predefined systems available. The optional units parameter to change the base units is included commented out.

#[macro_use]
extern crate uom;

mod f32 {
    Q!(crate::mks, f32/*, (centimeter, gram, second)*/);
}