Skip to main content

paperforge_core/
units.rs

1/// Unit conversion trait.
2pub trait UnitConversion: Copy {
3    /// Convert to points.
4    fn pt(&self) -> f64;
5    /// Convert to millimeters.
6    fn mm(&self) -> f64;
7    /// Convert to centimeters.
8    fn cm(&self) -> f64;
9    /// Convert to inches.
10    fn inch(&self) -> f64;
11}
12
13impl UnitConversion for f64 {
14    fn pt(&self) -> f64 {
15        *self
16    }
17
18    fn mm(&self) -> f64 {
19        *self * 72.0 / 25.4
20    }
21
22    fn cm(&self) -> f64 {
23        *self * 72.0 / 2.54
24    }
25
26    fn inch(&self) -> f64 {
27        *self * 72.0
28    }
29}