3个版本

0.1.10 2023年11月22日
0.1.9 2023年11月16日
0.1.3 2023年3月2日
0.1.2 2023年2月24日

#209 in 数学

Download history 1/week @ 2024-03-09 59/week @ 2024-03-30 13/week @ 2024-04-06

63 每月下载量

GPL-3.0 许可证

99KB
2.5K SLoC

eng-units

Rust库,用于构建、计算和转换自定义工程单位。

License Tests codecov

项目目标

  • 易于使用的工程单位和计算
  • 无panic
  • 无依赖
  • 100% 测试覆盖率

示例用法

创建单位

let quarter_pounder = mass!(0.25, MassUnit::Pound);
assert_eq!(0.25, quarter_pounder.value);
assert_eq!("0.25 lb", quarter_pounder.to_string());

转换单位

let quarter_pounder = mass!(0.25, MassUnit::Pound);
let royal_with_cheese = quarter_pounder.convert(MassUnit::Kilogram);
assert_eq!("0.11 kg", royal_with_cheese.to_string());

工程计算

let temp_1 = temperature!(4.0, TemperatureDeltaUnit::C);
let mass_1 = mass!(5.0, MassUnit::Kilogram);
let t_1 = time!(10.0, TimeUnit::Second);

let unit = temp_1 * mass_1 / t_1;
assert_eq!(2.0, unit.value);
assert_eq!("2.00 kg·°C/s", unit.to_string());

let double = 2.0 * unit;
assert_eq!(4.0, double.value);
assert_eq!("4.00 kg·°C/s", double.to_string());

let flip = double.reciprocal();
assert_eq!(0.25, flip.value);
assert_eq!("0.25 s/kg·°C", flip.to_string());

let mass_2 = mass!(10.0, MassUnit::Kilogram);
let canceled_out = flip * mass_2;
assert_eq!(2.50, canceled_out.value);
assert_eq!("2.50 s/°C", canceled_out.to_string());

测试覆盖率状态

Coverage

许可证

本程序是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证的条款和条件下重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何较新版本。

本程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已经收到一份GNU通用公共许可证副本。如果没有,请参见https://www.gnu.org/licenses/

无运行时依赖