pub struct NdVector<const N: usize, T> { /* private fields */ }Expand description
An array of N elements of type T, where T is often a DataValue,
which is a trait that defines the basic mathematical operations
and properties for the elements of the vector. This means that
NdVector can be used to represent vectors in N-dimensional space (or a free module)
over T. The vector operations for this type are implemented on a static basis,
meaning that the operations are defined for a fixed number of dimensions at compile time
without looping over N elements.
Implementations§
Trait Implementations§
Source§impl<T> AddAssign for NdVector<1usize, T>
impl<T> AddAssign for NdVector<1usize, T>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<T> AddAssign for NdVector<2usize, T>
impl<T> AddAssign for NdVector<2usize, T>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<T> AddAssign for NdVector<3usize, T>
impl<T> AddAssign for NdVector<3usize, T>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<T> AddAssign for NdVector<4usize, T>
impl<T> AddAssign for NdVector<4usize, T>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<T> DivAssign<T> for NdVector<1usize, T>
impl<T> DivAssign<T> for NdVector<1usize, T>
Source§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/= operation. Read moreSource§impl<T> DivAssign<T> for NdVector<2usize, T>
impl<T> DivAssign<T> for NdVector<2usize, T>
Source§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/= operation. Read moreSource§impl<T> DivAssign<T> for NdVector<3usize, T>
impl<T> DivAssign<T> for NdVector<3usize, T>
Source§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/= operation. Read moreSource§impl<T> DivAssign<T> for NdVector<4usize, T>
impl<T> DivAssign<T> for NdVector<4usize, T>
Source§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/= operation. Read moreSource§impl<T> MulAssign<T> for NdVector<1usize, T>
impl<T> MulAssign<T> for NdVector<1usize, T>
Source§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*= operation. Read moreSource§impl<T> MulAssign<T> for NdVector<2usize, T>
impl<T> MulAssign<T> for NdVector<2usize, T>
Source§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*= operation. Read moreSource§impl<T> MulAssign<T> for NdVector<3usize, T>
impl<T> MulAssign<T> for NdVector<3usize, T>
Source§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*= operation. Read moreSource§impl<T> MulAssign<T> for NdVector<4usize, T>
impl<T> MulAssign<T> for NdVector<4usize, T>
Source§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*= operation. Read moreSource§impl<T> SubAssign for NdVector<1usize, T>
impl<T> SubAssign for NdVector<1usize, T>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl<T> SubAssign for NdVector<2usize, T>
impl<T> SubAssign for NdVector<2usize, T>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl<T> SubAssign for NdVector<3usize, T>
impl<T> SubAssign for NdVector<3usize, T>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl<T> SubAssign for NdVector<4usize, T>
impl<T> SubAssign for NdVector<4usize, T>
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl Vector<1> for NdVector<1usize, f32>
impl Vector<1> for NdVector<1usize, f32>
type Component = f32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, f64>
impl Vector<1> for NdVector<1usize, f64>
type Component = f64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, i16>
impl Vector<1> for NdVector<1usize, i16>
type Component = i16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, i32>
impl Vector<1> for NdVector<1usize, i32>
type Component = i32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, i64>
impl Vector<1> for NdVector<1usize, i64>
type Component = i64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, i8>
impl Vector<1> for NdVector<1usize, i8>
type Component = i8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, u16>
impl Vector<1> for NdVector<1usize, u16>
type Component = u16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, u32>
impl Vector<1> for NdVector<1usize, u32>
type Component = u32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, u64>
impl Vector<1> for NdVector<1usize, u64>
type Component = u64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<1> for NdVector<1usize, u8>
impl Vector<1> for NdVector<1usize, u8>
type Component = u8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, f32>
impl Vector<2> for NdVector<2usize, f32>
type Component = f32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, f64>
impl Vector<2> for NdVector<2usize, f64>
type Component = f64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, i16>
impl Vector<2> for NdVector<2usize, i16>
type Component = i16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, i32>
impl Vector<2> for NdVector<2usize, i32>
type Component = i32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, i64>
impl Vector<2> for NdVector<2usize, i64>
type Component = i64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, i8>
impl Vector<2> for NdVector<2usize, i8>
type Component = i8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, u16>
impl Vector<2> for NdVector<2usize, u16>
type Component = u16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, u32>
impl Vector<2> for NdVector<2usize, u32>
type Component = u32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, u64>
impl Vector<2> for NdVector<2usize, u64>
type Component = u64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<2> for NdVector<2usize, u8>
impl Vector<2> for NdVector<2usize, u8>
type Component = u8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, f32>
impl Vector<3> for NdVector<3usize, f32>
type Component = f32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, f64>
impl Vector<3> for NdVector<3usize, f64>
type Component = f64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, i16>
impl Vector<3> for NdVector<3usize, i16>
type Component = i16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, i32>
impl Vector<3> for NdVector<3usize, i32>
type Component = i32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, i64>
impl Vector<3> for NdVector<3usize, i64>
type Component = i64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, i8>
impl Vector<3> for NdVector<3usize, i8>
type Component = i8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, u16>
impl Vector<3> for NdVector<3usize, u16>
type Component = u16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, u32>
impl Vector<3> for NdVector<3usize, u32>
type Component = u32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, u64>
impl Vector<3> for NdVector<3usize, u64>
type Component = u64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<3> for NdVector<3usize, u8>
impl Vector<3> for NdVector<3usize, u8>
type Component = u8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, f32>
impl Vector<4> for NdVector<4usize, f32>
type Component = f32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, f64>
impl Vector<4> for NdVector<4usize, f64>
type Component = f64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, i16>
impl Vector<4> for NdVector<4usize, i16>
type Component = i16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, i32>
impl Vector<4> for NdVector<4usize, i32>
type Component = i32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, i64>
impl Vector<4> for NdVector<4usize, i64>
type Component = i64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, i8>
impl Vector<4> for NdVector<4usize, i8>
type Component = i8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, u16>
impl Vector<4> for NdVector<4usize, u16>
type Component = u16
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, u32>
impl Vector<4> for NdVector<4usize, u32>
type Component = u32
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, u64>
impl Vector<4> for NdVector<4usize, u64>
type Component = u64
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
Source§impl Vector<4> for NdVector<4usize, u8>
impl Vector<4> for NdVector<4usize, u8>
type Component = u8
fn zero() -> Self
fn get(&self, index: usize) -> &Self::Component
fn get_mut(&mut self, index: usize) -> &mut Self::Component
unsafe fn get_unchecked(&self, index: usize) -> &Self::Component
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut Self::Component
impl<const N: usize, T: Copy> Copy for NdVector<N, T>
Auto Trait Implementations§
impl<const N: usize, T> Freeze for NdVector<N, T>where
T: Freeze,
impl<const N: usize, T> RefUnwindSafe for NdVector<N, T>where
T: RefUnwindSafe,
impl<const N: usize, T> Send for NdVector<N, T>where
T: Send,
impl<const N: usize, T> Sync for NdVector<N, T>where
T: Sync,
impl<const N: usize, T> Unpin for NdVector<N, T>where
T: Unpin,
impl<const N: usize, T> UnwindSafe for NdVector<N, T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more