#system #units #dimensional-analysis #smaller #international #version #uom

nightly tiny-uom

tiny-uom performs type-safe and zero-cost dimensional analysis. Like uom but much smaller.

1 unstable release

0.1.0 Nov 29, 2020

#816 in Science

MIT license

14KB
251 lines

tiny-uom

smol and fast version of uom

Documentation | Crate | Examples

This crate is mostly based on this proof-of-concept using const generics. tiny-uom is a port of uom to use const generics and to be a faster and smaller version. It provides type-safe and zero-cost dimensional-analysis. tiny-uom provides all units that are specified in the International System of Units and all quantities that are specified in the International System of Quantities.

Usage

tiny-uom requires nightly Rust compiler (currently it's always tested with nightly-2020-11-25). Add this your Cargo.toml:

[dependencies]
tiny-uom = "0.1.0"
#![feature(const_generics, const_evaluatable_checked)]
#![allow(incomplete_features)]

use tiny_uom::values::{kg, m, s};

let distance = 10.0 * m;
let time = 2.0 * s;

let velocity = distance / time;
assert_eq!(velocity, 5.0 * (m / s));

License

This project is licensed under the MIT license

No runtime deps