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