orx_funvec/d1/
std.rs

1use crate::{funvec_ref::FunVecRef, funvec_val::FunVec, index::IntoIndex};
2
3const DIM: usize = 1;
4
5// val
6impl<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
19// ref
20impl<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}