#单位 #毫米 # #英寸

无需 std 毫米

具有毫米单位的原始类型

1 个不稳定版本

0.1.0 2022年1月18日

1249数学

0BSD 许可证

15KB
312

millimeter 许可证 0BSD GitHub

此 crate 提供了 mmmm2 新类型结构体。这些结构体既可以用来表示一个值预期具有特定的单位,也可以在编译时证明计算结果符合预期单位。

示例

use millimeter::{mm, mm2, Unit};

#[derive(Clone, Copy, Default)]
pub struct Point {
	x: mm,
	y: mm
}

#[derive(Clone, Copy)]
pub struct Rectangle {
	top_left: Point,
	bottom_right: Point
}

impl Rectangle {
	pub fn one_inch_square(top_left: Point) -> Self {
		Self {
			top_left,
			bottom_right: Point {
				x: top_left.x + 1.0.inch(),
				y: top_left.y + 1.0.inch()
			}
		}
	}

	pub fn area(&self) -> mm2 {
		(self.bottom_right.x - self.top_left.x) * (self.bottom_right.y - self.top_left.y)
	}

	pub fn diagonal_len(&self) -> mm {
		let a = self.bottom_right.x - self.top_left.x;
		let b = self.bottom_right.y - self.top_left.y;
		(a*a + b*b).sqrt()
	}
}

许可证

许可协议为 BSD 无条款许可协议

除非您明确说明,否则您提交以包含在此 crate 中的任何贡献,均应按照上述协议进行许可,不得添加任何额外的条款或条件。

依赖项

~185KB