rspace_core/point/
impl_point_ext.rs1use super::Point;
7
8impl<X, Y> From<(X, Y)> for Point<X, Y> {
9 fn from((x, y): (X, Y)) -> Self {
10 Point { x, y }
11 }
12}
13
14impl<X, Y> From<Point<X, Y>> for (X, Y) {
15 fn from(point: Point<X, Y>) -> Self {
16 point.into_tuple()
17 }
18}
19
20impl<X> From<[X; 2]> for Point<X, X> {
21 fn from([x, y]: [X; 2]) -> Self {
22 Point { x, y }
23 }
24}
25
26impl<X> From<Point<X, X>> for [X; 2] {
27 fn from(point: Point<X, X>) -> Self {
28 [point.x, point.y]
29 }
30}
31
32impl<X, Y> PartialEq<(X, Y)> for Point<X, Y>
33where
34 X: PartialEq,
35 Y: PartialEq,
36{
37 fn eq(&self, (x, y): &(X, Y)) -> bool {
38 &self.x == x && &self.y == y
39 }
40}
41
42impl<X, Y> PartialEq<Point<X, Y>> for (X, Y)
43where
44 X: PartialEq,
45 Y: PartialEq,
46{
47 fn eq(&self, point: &Point<X, Y>) -> bool {
48 let (x, y) = self;
49 x == &point.x && y == &point.y
50 }
51}