#si-units #units #physics #measurement #unit #no-alloc

无需 std simple-si-units-macros

这是为 crate simple-si-units 提供的过程宏库。

24 个版本 (2 个稳定版)

1.0.1 2023年4月28日
0.9.0 2023年4月25日
0.7.4 2023年3月23日
0.3.1 2022年11月7日

#18 in #si-units

Download history 247/week @ 2024-03-14 17/week @ 2024-03-21 24/week @ 2024-03-28 42/week @ 2024-04-04 9/week @ 2024-04-11 13/week @ 2024-04-18 6/week @ 2024-04-25 1/week @ 2024-05-16 1/week @ 2024-05-23 5/week @ 2024-05-30 13/week @ 2024-06-06 32/week @ 2024-06-13 27/week @ 2024-06-20 15/week @ 2024-06-27

89 每月下载量
5 个 crate 中使用 (通过 simple-si-units)

MPL-2.0 许可证

29KB
460 代码行

simple-si-units-core

此 crate 存在是为了支持 simple-si-units。请访问那里获取更多信息。

内容

Crate simple-si-units-macros 导出以下 derive 宏

Unit

此宏使用来自 simple-si-units-coreNumLike trait 为派生结构体生成所有相关的数学运算符,只要该结构体只包含一个命名字段。例如

use simple_si_units_macros::UnitStruct;
use simple_si_units_core::NumLike;

#[derive(UnitStruct, Debug, Clone)]
struct HyperVelocity<T: NumLike>{
  square_meters_per_second: T
}

fn weighted_hypervel_sum<T: NumLike>(a: HyperVelocity<T>, b: HyperVelocity<T>, weight: f64) -> HyperVelocity<T>
  where T:NumLike + From<f64>
{
  return weight*a + (1.-weight)*b;
}

许可证

此库是开源的,采用 Mozilla 公共许可证版本 2.0。简而言之,您可以将此源代码 原样 包含在开源和专有项目中,而无需从我处请求许可,但如果您修改了此库的源代码,则必须以开源许可证发布您修改后的库版本。

依赖项

~1.5MB
~35K SLoC