1use crate::{funvec_ref::FunVecRef, funvec_val::FunVec, index::IntoIndex};
2
3const DIM: usize = 1;
4
5impl<T: Clone + Copy> FunVec<DIM, T> for Vec<T> {
7 #[inline(always)]
8 fn at<Idx: IntoIndex<DIM>>(&self, index: Idx) -> Option<T> {
9 self.get(index.into_index()[0]).copied()
10 }
11}
12impl<const N: usize, T: Clone + Copy> FunVec<DIM, T> for [T; N] {
13 #[inline(always)]
14 fn at<Idx: IntoIndex<DIM>>(&self, index: Idx) -> Option<T> {
15 self.get(index.into_index()[0]).copied()
16 }
17}
18
19impl<T> FunVecRef<DIM, T> for Vec<T> {
21 #[inline(always)]
22 fn ref_at<Idx: IntoIndex<DIM>>(&self, index: Idx) -> Option<&T> {
23 self.get(index.into_index()[0])
24 }
25}
26impl<const N: usize, T> FunVecRef<DIM, T> for [T; N] {
27 #[inline(always)]
28 fn ref_at<Idx: IntoIndex<DIM>>(&self, index: Idx) -> Option<&T> {
29 self.get(index.into_index()[0])
30 }
31}