From 4410d88d7a74cacf704d2fd4851db770da542fd4 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 13 Feb 2022 12:43:33 -0500 Subject: coords: Implement for all arrays using const generics --- src/coords.rs | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/src/coords.rs b/src/coords.rs index 7c83946..cee89ee 100644 --- a/src/coords.rs +++ b/src/coords.rs @@ -38,30 +38,17 @@ impl Coordinates for [T] { } /// [`Coordinates`] implementation for arrays. -macro_rules! array_coordinates { - ($n:expr) => { - impl Coordinates for [T; $n] { - type Value = T; - - fn dims(&self) -> usize { - $n - } - - fn coord(&self, i: usize) -> T { - self[i] - } - } - }; -} +impl Coordinates for [T; N] { + type Value = T; + + fn dims(&self) -> usize { + N + } -array_coordinates!(1); -array_coordinates!(2); -array_coordinates!(3); -array_coordinates!(4); -array_coordinates!(5); -array_coordinates!(6); -array_coordinates!(7); -array_coordinates!(8); + fn coord(&self, i: usize) -> T { + self[i] + } +} /// [`Coordinates`] implemention for vectors. impl Coordinates for Vec { -- cgit v1.2.3