8 releases
Uses new Rust 2024
new 0.1.7 | Apr 15, 2025 |
---|---|
0.1.6 | Apr 14, 2025 |
#656 in Embedded development
555 downloads per month
16KB
179 lines
unitscale
Overview
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.
Modules
- core: Exposes all traits and types from unitscale_core.
- macros: Exposes macros from unitscale_macros.
- prelude: Contains common re-exports for quick onboarding.
Example
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);
Use Cases
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.
Licensing
For licensing information, please refer to the LICENSE file in each crate.
Dependencies
~0.3–0.8MB
~18K SLoC