summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--core/src/lib.rs9
-rw-r--r--core/src/padding.rs6
-rw-r--r--core/src/pixels.rs8
3 files changed, 23 insertions, 0 deletions
diff --git a/core/src/lib.rs b/core/src/lib.rs
index c31a8da7..d5c221ac 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -84,3 +84,12 @@ pub use vector::Vector;
pub use widget::Widget;
pub use smol_str::SmolStr;
+
+/// A function that can _never_ be called.
+///
+/// This is useful to turn generic types into anything
+/// you want by coercing them into a type with no possible
+/// values.
+pub fn never<T>(never: std::convert::Infallible) -> T {
+ match never {}
+}
diff --git a/core/src/padding.rs b/core/src/padding.rs
index e26cdd9b..9ec02e6d 100644
--- a/core/src/padding.rs
+++ b/core/src/padding.rs
@@ -202,3 +202,9 @@ impl From<Padding> for Size {
Self::new(padding.horizontal(), padding.vertical())
}
}
+
+impl From<Pixels> for Padding {
+ fn from(pixels: Pixels) -> Self {
+ Self::from(pixels.0)
+ }
+}
diff --git a/core/src/pixels.rs b/core/src/pixels.rs
index a1ea0f15..7d6267cf 100644
--- a/core/src/pixels.rs
+++ b/core/src/pixels.rs
@@ -79,3 +79,11 @@ impl std::ops::Div<f32> for Pixels {
Pixels(self.0 / rhs)
}
}
+
+impl std::ops::Div<u32> for Pixels {
+ type Output = Pixels;
+
+ fn div(self, rhs: u32) -> Self {
+ Pixels(self.0 / rhs as f32)
+ }
+}