Expand description
Mag is a library for dealing with physical quantities and units.
Quantities are created by multiplying scalar values by a unit type. These units are named after common abbreviations:
use mag::{length::{ft, m, mi}, time::{h, s}};
let a = 1.0 * ft;
assert_eq!(a.to_string(), "1 ft");
let b = a.to::<m>();
assert_eq!(b.to_string(), "0.3048 m");
let c = 30 * s;
assert_eq!(c.to_string(), "30 s");
let d = 60.0 / s;
assert_eq!(d.to_string(), "60 ㎐");
let e = 55.0 * mi / h;
assert_eq!(e.to_string(), "55 mi/h");
§Highlights
- Easy to understand and use
- Performs conversions between units (SI, imperial)
- Units are not discarded when creating quantities
- Fast compile time
- No external dependencies
§Alternative
If mag doesn’t fit your needs, you could try the uom crate, which has many more features.
Modules§
- Units of length in one dimension.
- Units of physical mass.
- Units of thermodynamic temperature.
- Units of time.
Macros§
- Define a custom unit of measure.
Structs§
- Two dimensional area.
- Temporal frequency, or rate over time.
- One dimensional length, distance or range.
- Period, duration or interval of time.
- Quantity of speed.
- Three dimensional volume.