orx_funvec/d_any/
scalars.rs1use crate::{
2 empty_vec::EmptyVec, funvec_ref::FunVecRef, funvec_val::FunVec, index::IntoIndex,
3 scalar_as_vec::ScalarAsVec,
4};
5
6impl<const DIM: usize, T: Clone + Copy> FunVec<DIM, T> for ScalarAsVec<T> {
8 #[inline(always)]
9 fn at<Idx: IntoIndex<DIM>>(&self, _: Idx) -> Option<T> {
10 Some(self.0)
11 }
12}
13
14impl<const DIM: usize, T: Clone + Copy> FunVec<DIM, T> for EmptyVec<T> {
15 fn at<Idx: IntoIndex<DIM>>(&self, _: Idx) -> Option<T> {
16 None
17 }
18}
19
20impl<const DIM: usize, T> FunVecRef<DIM, T> for ScalarAsVec<T> {
22 #[inline(always)]
23 fn ref_at<Idx: IntoIndex<DIM>>(&self, _: Idx) -> Option<&T> {
24 Some(&self.0)
25 }
26}
27
28impl<const DIM: usize, T: ?Sized> FunVecRef<DIM, T> for EmptyVec<T> {
29 #[inline(always)]
30 fn ref_at<Idx: IntoIndex<DIM>>(&self, _: Idx) -> Option<&T> {
31 None
32 }
33}