diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2022-02-13 12:43:33 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2022-02-13 12:43:33 -0500 |
commit | 4410d88d7a74cacf704d2fd4851db770da542fd4 (patch) | |
tree | f218228f3a46924fbbd9d20a0ec5f6040a9ca6c9 /src | |
parent | e7b3250dd45b00fe6b49a7bed12410575e1ac274 (diff) | |
download | acap-4410d88d7a74cacf704d2fd4851db770da542fd4.tar.xz |
coords: Implement for all arrays using const generics
Diffstat (limited to 'src')
-rw-r--r-- | src/coords.rs | 33 |
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> { |