Collect wall points into walls and place them in a wall grid
[kaka/rust-sdl-test.git] / src / common / geometry.rs
index 02f93b1..5a03ffb 100644 (file)
@@ -182,28 +182,28 @@ impl Radians {
 }
 
 #[macro_export]
-macro_rules! rect {
-    ( $x:expr, $y:expr ) => {
-        Rect { x: $x, y: $y }
+macro_rules! dimen {
+    ( $w:expr, $h:expr ) => {
+        Dimension { width: $w, height: $h }
     };
 }
 
-#[derive(Default)]
-pub struct Rect<T> {
+#[derive(Debug, Default)]
+pub struct Dimension<T> {
     pub width: T,
     pub height: T,
 }
 
-impl<T: Mul<Output = T> + Copy> Rect<T> {
+impl<T: Mul<Output = T> + Copy> Dimension<T> {
     #[allow(dead_code)]
     pub fn area(&self) -> T {
         self.width * self.height
     }
 }
 
-impl<T> From<(T, T)> for Rect<T> {
+impl<T> From<(T, T)> for Dimension<T> {
     fn from(item: (T, T)) -> Self {
-        Rect {
+        Dimension {
             width: item.0,
             height: item.1,
         }
@@ -291,9 +291,9 @@ mod tests {
     }
 
     #[test]
-    fn area_for_rect_of_multipliable_type() {
-        let r: Rect<_> = (30, 20).into(); // the Into trait uses the From trait
+    fn area_for_dimension_of_multipliable_type() {
+        let r: Dimension<_> = (30, 20).into(); // the Into trait uses the From trait
         assert_eq!(r.area(), 30 * 20);
-        // let a = Rect::from(("a".to_string(), "b".to_string())).area(); // this doesn't work, because area() is not implemented for String
+        // let a = Dimension::from(("a".to_string(), "b".to_string())).area(); // this doesn't work, because area() is not implemented for String
     }
 }