| Crates.io | unitscale |
| lib.rs | unitscale |
| version | 0.1.7 |
| created_at | 2025-04-11 02:12:56.400202+00 |
| updated_at | 2025-04-15 20:26:32.870384+00 |
| description | Facade crate for statically-scaled unit macros and traits. |
| homepage | |
| repository | https://gitlab.com/goosegrid/unitscale |
| max_upload_size | |
| id | 1629130 |
| size | 19,824 |
This is the public-facing facade crate that re-exports the traits and macros from unitscale_core and unitscale_macros. It is designed to be ergonomic and beginner-friendly.
You will need to add unitscale_core and num_traits to your dependancies.
use unitscale::prelude::*;
#[unit_scale(to = 0.5)]
struct HalfUnit;
#[unit_data]
struct Percent;
let p = Percent::<HalfUnit, u8>::try_from(30.0).unwrap();
// v.to_f64() gives back 30.0 within the precision limit of the type (e.g. u8)
assert_eq!(p.scaled_value(), 60);
This crate is ideal for anyone working with embedded systems, battery management protocols, or anywhere you need strongly typed unit data tied to fixed encoding scales.
For licensing information, please refer to the LICENSE file in each crate.