Electrical units library for embedded Rust targets focusing on ease-of-use and performance.
Supports no_std
environments.
Greatly inspired by the fugit crate.
All units are stored internally as u64
or i64
in their base unit.
- Current (μA, mA, A)
- Resistance (mΩ, Ω, kΩ, MΩ)
- Voltage (μV, mV, V, kV)
- Power (μW, mW, W, kW)
Types implement their own FromInteger
and FromFloat
traits for convenience on the following types:
u8
u16
u32
u64
i8
i16
i32
i64
f32
f64
The Current
, Resistance
and Voltage
types follow the Ohm's Law rules.
This means that you can use the /
and *
operators to calculate the missing value.
For example, Voltage / Current
will return a Resistance
value.
The Power
type supports calculating the power from multiplying Voltage
and Current
values.
You can add this crate via crates.io:
$ cargo add ohms
use ohms::prelude::*;
let voltage = 5.volts();
let current = 1.milli_amps();
let resistance = voltage / current;
let power = voltage * current;
assert_eq!(resistance.ohms(), 5000);
assert_eq!(power.milli_watts(), 5000);
You can find the documentation here.