diff options
Diffstat (limited to '')
-rw-r--r-- | core/src/size.rs | 16 | ||||
-rw-r--r-- | core/src/vector.rs | 15 |
2 files changed, 31 insertions, 0 deletions
diff --git a/core/src/size.rs b/core/src/size.rs index 7c481935..5c130978 100644 --- a/core/src/size.rs +++ b/core/src/size.rs @@ -1,3 +1,4 @@ +use crate::Vector; use std::f32; /// An amount of space in 2 dimensions. @@ -57,8 +58,23 @@ impl From<[u16; 2]> for Size { } } +impl From<Vector<f32>> for Size { + fn from(vector: Vector<f32>) -> Self { + Size { + width: vector.x, + height: vector.y, + } + } +} + impl From<Size> for [f32; 2] { fn from(size: Size) -> [f32; 2] { [size.width, size.height] } } + +impl From<Size> for Vector<f32> { + fn from(size: Size) -> Self { + Vector::new(size.width, size.height) + } +} diff --git a/core/src/vector.rs b/core/src/vector.rs index def3f8c0..e31924e7 100644 --- a/core/src/vector.rs +++ b/core/src/vector.rs @@ -65,3 +65,18 @@ where } } } + +impl<T> From<[T; 2]> for Vector<T> { + fn from([x, y]: [T; 2]) -> Self { + Self::new(x, y) + } +} + +impl<T> From<Vector<T>> for [T; 2] +where + T: Copy, +{ + fn from(other: Vector<T>) -> Self { + [other.x, other.y] + } +} |