2 个不稳定版本
0.3.0 | 2023年4月26日 |
---|---|
0.2.0 | 2023年4月25日 |
0.1.1 |
|
0.1.0 |
|
#3 在 #velocity
被用于 tafelwerk
8KB
145 代码行(不包括注释)
测量
向 Rust 添加数量和单位,以允许以零成本抽象进行单位安全计算。
注意:此包使用不稳定功能,需要您添加 #![feature(generic_const_exprs)]
并使用 nightly 编译器。
使用方法
通过在 main.rs
或 lib.rs
文件中添加 #![feature(generic_const_exprs)]
添加 generic_const_exprs
功能。
use measurement::si::{Length, Time, Velocity};
fn main() {
let length = Length::new(20.0); // 20m
let time = Time::new(5.0); // 5s
// you can specify the type of the quantity but you don't have to
// (see the example below)
let velocity: Velocity = length / time;
println!("{}", velocity.value);
}
use measurement::si::{Mass, Acceleration};
fn main() {
let mass = Mass::new(50.0);
let acceleration = Acceleration::new(10.0);
let force = mass * acceleration;
println!("{}", force.value);
}
定义新的数量
目前仅支持三个维度:时间、长度、质量
use measurement::{Quantity, Dimension};
pub type Length = Quantity<Dimension<1, 0, 0, 0, 0, 0, 0>>;
pub type Mass = Quantity<Dimension<0, 1, 0, 0, 0, 0, 0>>;
pub type Time = Quantity<Dimension<0, 0, 1, 0, 0, 0, 0>>;
pub type ElectricalCurrent = Quantity<Dimension<0, 0, 0, 1, 0, 0, 0>>;
pub type ThermodynamicTemperatur = Quantity<Dimension<0, 0, 0, 0, 1, 0, 0>>;
pub type AmountOfSubstance = Quantity<Dimension<0, 0, 0, 0, 0, 1, 0>>;
pub type LuminousIntensity = Quantity<Dimension<0, 0, 0, 0, 0, 0, 1>>;
pub type Velocity = Quantity<Dimension<1, 0, -1, 0, 0, 0, 0>>;
pub type Acceleration = Quantity<Dimension<1, 0, -2, 0, 0, 0, 0>>;
pub type Force = Quantity<Dimension<1, 1, -2, 0, 0, 0, 0>>;