mirror of
https://github.com/rust-windowing/winit.git
synced 2026-08-29 04:40:04 -04:00
dpi: derive common traits for PixelUnit
Derive `Debug`, `Copy`, `Clone` , `PartialEq`, `Serialize`, `Deserialize` for `PixelUnit`, which follows other types in dpi crate.
This commit is contained in:
committed by
Kirill Chibisov
parent
fedb944d57
commit
8e69a8fa40
@@ -11,6 +11,8 @@ Unreleased` header.
|
|||||||
|
|
||||||
# Unreleased
|
# Unreleased
|
||||||
|
|
||||||
|
- Derive `Debug`, `Copy`, `Clone`, `PartialEq`, `Serialize`, `Deserialize` traits for `PixelUnit`.
|
||||||
|
|
||||||
# 0.1.0
|
# 0.1.0
|
||||||
|
|
||||||
- Add `LogicalUnit`, `PhysicalUnit` and `PixelUnit` types and related functions.
|
- Add `LogicalUnit`, `PhysicalUnit` and `PixelUnit` types and related functions.
|
||||||
|
|||||||
@@ -314,6 +314,8 @@ impl<P: Pixel> From<PhysicalUnit<P>> for f64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// A pixel unit that's either physical or logical.
|
/// A pixel unit that's either physical or logical.
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq)]
|
||||||
|
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||||
pub enum PixelUnit {
|
pub enum PixelUnit {
|
||||||
Physical(PhysicalUnit<i32>),
|
Physical(PhysicalUnit<i32>),
|
||||||
Logical(LogicalUnit<f64>),
|
Logical(LogicalUnit<f64>),
|
||||||
@@ -1205,4 +1207,38 @@ mod tests {
|
|||||||
let _ = format!("{:?}", Size::Physical((1, 2).into()).clone());
|
let _ = format!("{:?}", Size::Physical((1, 2).into()).clone());
|
||||||
let _ = format!("{:?}", Position::Physical((1, 2).into()).clone());
|
let _ = format!("{:?}", Position::Physical((1, 2).into()).clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn ensure_copy_trait() {
|
||||||
|
fn is_copy<T: Copy>() {}
|
||||||
|
|
||||||
|
is_copy::<LogicalUnit<i32>>();
|
||||||
|
is_copy::<PhysicalUnit<f64>>();
|
||||||
|
is_copy::<PixelUnit>();
|
||||||
|
|
||||||
|
is_copy::<LogicalSize<i32>>();
|
||||||
|
is_copy::<PhysicalSize<f64>>();
|
||||||
|
is_copy::<Size>();
|
||||||
|
|
||||||
|
is_copy::<LogicalPosition<i32>>();
|
||||||
|
is_copy::<PhysicalPosition<f64>>();
|
||||||
|
is_copy::<Position>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn ensure_partial_eq_trait() {
|
||||||
|
fn is_partial_eq<T: PartialEq>() {}
|
||||||
|
|
||||||
|
is_partial_eq::<LogicalUnit<i32>>();
|
||||||
|
is_partial_eq::<PhysicalUnit<f64>>();
|
||||||
|
is_partial_eq::<PixelUnit>();
|
||||||
|
|
||||||
|
is_partial_eq::<LogicalSize<i32>>();
|
||||||
|
is_partial_eq::<PhysicalSize<f64>>();
|
||||||
|
is_partial_eq::<Size>();
|
||||||
|
|
||||||
|
is_partial_eq::<LogicalPosition<i32>>();
|
||||||
|
is_partial_eq::<PhysicalPosition<f64>>();
|
||||||
|
is_partial_eq::<Position>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user