Crates.io | tiny-uom |
lib.rs | tiny-uom |
version | 0.1.0 |
source | src |
created_at | 2020-11-29 12:45:51.591643 |
updated_at | 2020-11-29 12:45:51.591643 |
description | tiny-uom performs type-safe and zero-cost dimensional analysis. Like `uom` but much smaller. |
homepage | https://github.com/Stupremee/tiny-uom |
repository | https://github.com/Stupremee/tiny-uom |
max_upload_size | |
id | 317740 |
size | 16,268 |
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.
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));
This project is licensed under the MIT license