summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/coords.rs33
1 files 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<T: Value> Coordinates for [T] {
}
/// [`Coordinates`] implementation for arrays.
-macro_rules! array_coordinates {
- ($n:expr) => {
- impl<T: Value> Coordinates for [T; $n] {
- type Value = T;
-
- fn dims(&self) -> usize {
- $n
- }
-
- fn coord(&self, i: usize) -> T {
- self[i]
- }
- }
- };
-}
+impl<T: Value, const N: usize> 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<T: Value> Coordinates for Vec<T> {