ohms

Crates.ioohms
lib.rsohms
version0.4.0
sourcesrc
created_at2023-02-02 21:15:36.518899
updated_at2023-02-23 06:22:33.098613
descriptionElectrical units library for embedded targets
homepage
repositoryhttps://github.com/UnderLogic/ohms
max_upload_size
id775084
size70,930
Erik Rogers (ewrogers)

documentation

README

ohms

crates.io

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.

Supported Units

Extension Traits

Types implement their own FromInteger and FromFloat traits for convenience on the following types:

  • u8
  • u16
  • u32
  • u64
  • i8
  • i16
  • i32
  • i64
  • f32
  • f64

Ohm's Law

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.

Power Calculations

The Power type supports calculating the power from multiplying Voltage and Current values.

Installation

You can add this crate via crates.io:

$ cargo add ohms

Usage

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);

Documentation

You can find the documentation here.

Commit count: 45

cargo fmt