Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/deebloo/metrum


https://github.com/deebloo/metrum

Last synced: 15 days ago
JSON representation

Awesome Lists containing this project

README

        

# metrum

Easily handle measurement values in rust.

The goal is to work with measurements without needing to think about about units until you absolutely have to.

For example: A `Temp` is itself a value. The units are just for display back to the user.

You can compare and combine temps safely without manually converting to and from different units.

For example you can subtract 10degC from 86degF. The crate will handle the conversions internally and give you a result in the initial unit.

```rust
use metrum:Temp;

let value = Temp::F(86.) - Temp::C(10.);

println("{}", value.as_k()); // 275.372
```

This also means you can safely compare temperatures in two different units

```rust
use metrum:Temp;

let value = Temp::F(86.) == Temp::C(30.); // true
```

Temps can be safely serialized and deserialized using serde when the `serde` feature is enabled.

```toml
[dependencies]
metrum = { version = "0.5.0", features = ["serde"] }
```