diff --git a/dpi/CHANGELOG.md b/dpi/CHANGELOG.md index f700211d..ec2333e4 100644 --- a/dpi/CHANGELOG.md +++ b/dpi/CHANGELOG.md @@ -11,6 +11,8 @@ Unreleased` header. # Unreleased +- Derive `Debug`, `Copy`, `Clone`, `PartialEq`, `Serialize`, `Deserialize` traits for `PixelUnit`. + # 0.1.0 - Add `LogicalUnit`, `PhysicalUnit` and `PixelUnit` types and related functions. diff --git a/dpi/src/lib.rs b/dpi/src/lib.rs index 9258de30..06dcdd06 100644 --- a/dpi/src/lib.rs +++ b/dpi/src/lib.rs @@ -314,6 +314,8 @@ impl From> for f64 { } /// A pixel unit that's either physical or logical. +#[derive(Debug, Copy, Clone, PartialEq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum PixelUnit { Physical(PhysicalUnit), Logical(LogicalUnit), @@ -1205,4 +1207,38 @@ mod tests { let _ = format!("{:?}", Size::Physical((1, 2).into()).clone()); let _ = format!("{:?}", Position::Physical((1, 2).into()).clone()); } + + #[test] + fn ensure_copy_trait() { + fn is_copy() {} + + is_copy::>(); + is_copy::>(); + is_copy::(); + + is_copy::>(); + is_copy::>(); + is_copy::(); + + is_copy::>(); + is_copy::>(); + is_copy::(); + } + + #[test] + fn ensure_partial_eq_trait() { + fn is_partial_eq() {} + + is_partial_eq::>(); + is_partial_eq::>(); + is_partial_eq::(); + + is_partial_eq::>(); + is_partial_eq::>(); + is_partial_eq::(); + + is_partial_eq::>(); + is_partial_eq::>(); + is_partial_eq::(); + } }