Struct vecmat::Vector [−][src]
#[repr(transparent)]pub struct Vector<T, const N: usize> { /* fields omitted */ }
Expand description
Vector of fixed size.
Implementations
impl<T, const N: usize> Vector<T, N>
[src]
impl<T, const N: usize> Vector<T, N>
[src]pub fn uninit() -> Vector<MaybeUninit<T>, N>
[src]
pub fn uninit() -> Vector<MaybeUninit<T>, N>
[src]Create a vector with uninitialized content.
impl<T, const N: usize> Vector<MaybeUninit<T>, N>
[src]
impl<T, const N: usize> Vector<MaybeUninit<T>, N>
[src]pub unsafe fn assume_init(self) -> Vector<T, N>
[src]
pub unsafe fn assume_init(self) -> Vector<T, N>
[src]Assume that vector content is initialized.
impl<T, const N: usize> Vector<T, N>
[src]
impl<T, const N: usize> Vector<T, N>
[src]pub fn as_mut_ptr(&mut self) -> *mut T
[src]
pub fn as_mut_ptr(&mut self) -> *mut T
[src]Get mutable pointer to the first element.
pub unsafe fn get_unchecked(&self, i: usize) -> &T
[src]
pub unsafe fn get_unchecked(&self, i: usize) -> &T
[src]Get reference to the elements without boundary checking.
pub unsafe fn get_unchecked_mut(&mut self, i: usize) -> &mut T
[src]
pub unsafe fn get_unchecked_mut(&mut self, i: usize) -> &mut T
[src]Get mutable reference to the elements without boundary checking.
impl<T, const N: usize> Vector<T, N>
[src]
impl<T, const N: usize> Vector<T, N>
[src]pub fn try_from_iter<I>(iter: I) -> Option<Self> where
I: Iterator<Item = T>,
[src]
pub fn try_from_iter<I>(iter: I) -> Option<Self> where
I: Iterator<Item = T>,
[src]Try to conctruct a vector from iterator.
If iterator conatains less items than vector, then Err
is returned.
impl<T, const N: usize> Vector<T, N>
[src]
impl<T, const N: usize> Vector<T, N>
[src]impl<T, const N: usize> Vector<T, N> where
T: Add<Output = T> + Mul<Output = T> + Copy,
[src]
impl<T, const N: usize> Vector<T, N> where
T: Add<Output = T> + Mul<Output = T> + Copy,
[src]pub fn square_length(self) -> T
[src]
impl<T, const N: usize> Vector<T, N>
[src]
impl<T, const N: usize> Vector<T, N>
[src]pub fn sum(self) -> T where
T: Add<Output = T>,
[src]
T: Add<Output = T>,
pub fn max(self) -> T where
T: PartialOrd,
[src]
T: PartialOrd,
pub fn min(self) -> T where
T: PartialOrd,
[src]
T: PartialOrd,
impl<T, const N: usize> Vector<T, N> where
T: PartialOrd,
[src]
impl<T, const N: usize> Vector<T, N> where
T: PartialOrd,
[src]impl<T> Vector<T, 2>
[src]
impl<T> Vector<T, 2>
[src]pub fn from_tuple((x, y): (T, T)) -> Self
[src]
pub fn into_tuple(self) -> (T, T)
[src]
impl<T> Vector<T, 3>
[src]
impl<T> Vector<T, 3>
[src]pub fn from_tuple((x, y, z): (T, T, T)) -> Self
[src]
pub fn into_tuple(self) -> (T, T, T)
[src]
impl<T> Vector<T, 4>
[src]
impl<T> Vector<T, 4>
[src]pub fn from_tuple((x, y, z, w): (T, T, T, T)) -> Self
[src]
pub fn into_tuple(self) -> (T, T, T, T)
[src]
Trait Implementations
impl<T, const N: usize> AbsDiffEq<Vector<T, N>> for Vector<T, N> where
T: AbsDiffEq<Epsilon = T> + Copy,
[src]
impl<T, const N: usize> AbsDiffEq<Vector<T, N>> for Vector<T, N> where
T: AbsDiffEq<Epsilon = T> + Copy,
[src]type Epsilon = T
type Epsilon = T
Used for specifying relative comparisons.
fn default_epsilon() -> Self::Epsilon
[src]
fn default_epsilon() -> Self::Epsilon
[src]The default tolerance to use when testing values that are close together. Read more
fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool
[src]
fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool
[src]A test for equality that uses the absolute difference to compute the approximate equality of two numbers. Read more
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
[src]
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
[src]The inverse of AbsDiffEq::abs_diff_eq
.
impl<T, const N: usize> AddAssign<Vector<T, N>> for Vector<T, N> where
T: AddAssign,
[src]
impl<T, const N: usize> AddAssign<Vector<T, N>> for Vector<T, N> where
T: AddAssign,
[src]fn add_assign(&mut self, vec: Vector<T, N>)
[src]
fn add_assign(&mut self, vec: Vector<T, N>)
[src]Performs the +=
operation. Read more
impl<T, const N: usize> BitAndAssign<Vector<T, N>> for Vector<T, N> where
T: BitAndAssign,
[src]
impl<T, const N: usize> BitAndAssign<Vector<T, N>> for Vector<T, N> where
T: BitAndAssign,
[src]fn bitand_assign(&mut self, other: Vector<T, N>)
[src]
fn bitand_assign(&mut self, other: Vector<T, N>)
[src]Performs the &=
operation. Read more
impl<T, const N: usize> BitOrAssign<Vector<T, N>> for Vector<T, N> where
T: BitOrAssign,
[src]
impl<T, const N: usize> BitOrAssign<Vector<T, N>> for Vector<T, N> where
T: BitOrAssign,
[src]fn bitor_assign(&mut self, other: Vector<T, N>)
[src]
fn bitor_assign(&mut self, other: Vector<T, N>)
[src]Performs the |=
operation. Read more
impl<T, const N: usize> BitXorAssign<Vector<T, N>> for Vector<T, N> where
T: BitXorAssign,
[src]
impl<T, const N: usize> BitXorAssign<Vector<T, N>> for Vector<T, N> where
T: BitXorAssign,
[src]fn bitxor_assign(&mut self, other: Vector<T, N>)
[src]
fn bitxor_assign(&mut self, other: Vector<T, N>)
[src]Performs the ^=
operation. Read more
impl<T> Directional<Vector<T, 2_usize>> for Rotation2<T> where
Self: Transform<Vector<T, 2>>,
[src]
impl<T> Directional<Vector<T, 2_usize>> for Rotation2<T> where
Self: Transform<Vector<T, 2>>,
[src]impl<T> Directional<Vector<T, 3_usize>> for Rotation3<T> where
Self: Transform<Vector<T, 3>>,
[src]
impl<T> Directional<Vector<T, 3_usize>> for Rotation3<T> where
Self: Transform<Vector<T, 3>>,
[src]impl<T, const N: usize> Directional<Vector<T, N>> for Linear<T, N> where
Self: Transform<Vector<T, N>>,
T: Neg<Output = T> + Num + Copy,
Vector<T, N>: Normalize,
Matrix<T, N, N>: Inv<Output = Matrix<T, N, N>>,
[src]
impl<T, const N: usize> Directional<Vector<T, N>> for Linear<T, N> where
Self: Transform<Vector<T, N>>,
T: Neg<Output = T> + Num + Copy,
Vector<T, N>: Normalize,
Matrix<T, N, N>: Inv<Output = Matrix<T, N, N>>,
[src]impl<T, const N: usize> Directional<Vector<T, N>> for Shift<T, N> where
Self: Transform<Vector<T, N>>,
[src]
impl<T, const N: usize> Directional<Vector<T, N>> for Shift<T, N> where
Self: Transform<Vector<T, N>>,
[src]impl<T, const N: usize> Directional<Vector<T, N>> for Scale<T> where
Self: Transform<Vector<T, N>>,
[src]
impl<T, const N: usize> Directional<Vector<T, N>> for Scale<T> where
Self: Transform<Vector<T, N>>,
[src]impl<D: Distribution<T>, T, const N: usize> Distribution<Vector<T, N>> for VectorDistribution<D, T, N>
[src]
impl<D: Distribution<T>, T, const N: usize> Distribution<Vector<T, N>> for VectorDistribution<D, T, N>
[src]fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]Generate a random value of T
, using rng
as the source of randomness.
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]Create an iterator that generates random values of T
, using rng
as
the source of randomness. Read more
impl<T, const N: usize> Distribution<Vector<T, N>> for Normal where
Normal: Distribution<T>,
[src]
impl<T, const N: usize> Distribution<Vector<T, N>> for Normal where
Normal: Distribution<T>,
[src]fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]Generate a random value of T
, using rng
as the source of randomness.
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]Create an iterator that generates random values of T
, using rng
as
the source of randomness. Read more
impl<T: Float, const N: usize> Distribution<Vector<T, N>> for NonZero where
Normal: Distribution<Vector<T, N>>,
[src]
impl<T: Float, const N: usize> Distribution<Vector<T, N>> for NonZero where
Normal: Distribution<Vector<T, N>>,
[src]fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]Generate a random value of T
, using rng
as the source of randomness.
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]Create an iterator that generates random values of T
, using rng
as
the source of randomness. Read more
impl<T: Float, const N: usize> Distribution<Vector<T, N>> for Unit where
NonZero: Distribution<Vector<T, N>>,
[src]
impl<T: Float, const N: usize> Distribution<Vector<T, N>> for Unit where
NonZero: Distribution<Vector<T, N>>,
[src]fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]Generate a random value of T
, using rng
as the source of randomness.
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]Create an iterator that generates random values of T
, using rng
as
the source of randomness. Read more
impl<T, const N: usize> DivAssign<T> for Vector<T, N> where
T: DivAssign + Copy,
[src]
impl<T, const N: usize> DivAssign<T> for Vector<T, N> where
T: DivAssign + Copy,
[src]fn div_assign(&mut self, a: T)
[src]
fn div_assign(&mut self, a: T)
[src]Performs the /=
operation. Read more
impl<T, const N: usize> DivAssign<Vector<T, N>> for Vector<T, N> where
T: DivAssign,
[src]
impl<T, const N: usize> DivAssign<Vector<T, N>> for Vector<T, N> where
T: DivAssign,
[src]fn div_assign(&mut self, vec: Vector<T, N>)
[src]
fn div_assign(&mut self, vec: Vector<T, N>)
[src]Performs the /=
operation. Read more
impl<T, const M: usize, const N: usize> Dot<Matrix<T, M, N>> for Vector<T, M> where
T: Mul<Output = T> + Add<Output = T> + Copy,
[src]
impl<T, const M: usize, const N: usize> Dot<Matrix<T, M, N>> for Vector<T, M> where
T: Mul<Output = T> + Add<Output = T> + Copy,
[src]impl<T, const M: usize, const N: usize> Dot<Vector<T, N>> for Matrix<T, M, N> where
T: Mul<Output = T> + Add<Output = T> + Copy,
[src]
impl<T, const M: usize, const N: usize> Dot<Vector<T, N>> for Matrix<T, M, N> where
T: Mul<Output = T> + Add<Output = T> + Copy,
[src]impl<T, const N: usize> Dot<Vector<T, N>> for Vector<T, N> where
T: Mul<Output = T> + Add<Output = T>,
[src]
impl<T, const N: usize> Dot<Vector<T, N>> for Vector<T, N> where
T: Mul<Output = T> + Add<Output = T>,
[src]impl<T, const M: usize, const N: usize> From<&'_ Vector<Vector<T, N>, M>> for Matrix<T, M, N> where
T: Copy,
[src]
impl<T, const M: usize, const N: usize> From<&'_ Vector<Vector<T, N>, M>> for Matrix<T, M, N> where
T: Copy,
[src]impl<'a, T, const M: usize, const N: usize> From<&'a Matrix<T, M, N>> for &'a Vector<Vector<T, N>, M>
[src]
impl<'a, T, const M: usize, const N: usize> From<&'a Matrix<T, M, N>> for &'a Vector<Vector<T, N>, M>
[src]impl<'a, T, const M: usize, const N: usize> From<&'a mut Matrix<T, M, N>> for &'a mut Vector<Vector<T, N>, M>
[src]
impl<'a, T, const M: usize, const N: usize> From<&'a mut Matrix<T, M, N>> for &'a mut Vector<Vector<T, N>, M>
[src]impl<T> From<Vector<T, 4_usize>> for Quaternion<T>
[src]
impl<T> From<Vector<T, 4_usize>> for Quaternion<T>
[src]impl<T, const N: usize> IntoIterator for Vector<T, N>
[src]
impl<T, const N: usize> IntoIterator for Vector<T, N>
[src]impl<'a, T, const N: usize> IntoIterator for &'a Vector<T, N>
[src]
impl<'a, T, const N: usize> IntoIterator for &'a Vector<T, N>
[src]impl<'a, T, const N: usize> IntoIterator for &'a mut Vector<T, N>
[src]
impl<'a, T, const N: usize> IntoIterator for &'a mut Vector<T, N>
[src]impl<T, const N: usize> MulAssign<T> for Vector<T, N> where
T: MulAssign + Copy,
[src]
impl<T, const N: usize> MulAssign<T> for Vector<T, N> where
T: MulAssign + Copy,
[src]fn mul_assign(&mut self, a: T)
[src]
fn mul_assign(&mut self, a: T)
[src]Performs the *=
operation. Read more
impl<T, const N: usize> MulAssign<Vector<T, N>> for Vector<T, N> where
T: MulAssign,
[src]
impl<T, const N: usize> MulAssign<Vector<T, N>> for Vector<T, N> where
T: MulAssign,
[src]fn mul_assign(&mut self, vec: Vector<T, N>)
[src]
fn mul_assign(&mut self, vec: Vector<T, N>)
[src]Performs the *=
operation. Read more
impl<T, const N: usize> NormL1 for Vector<T, N> where
T: NormL1<Output = T> + Add<Output = T>,
[src]
impl<T, const N: usize> NormL1 for Vector<T, N> where
T: NormL1<Output = T> + Add<Output = T>,
[src]impl<T, const N: usize> NormL2 for Vector<T, N> where
T: Float,
[src]
impl<T, const N: usize> NormL2 for Vector<T, N> where
T: Float,
[src]impl<T, const M: usize, const N: usize> Outer<Vector<T, N>> for Vector<T, M> where
T: Mul<Output = T> + Copy,
[src]
impl<T, const M: usize, const N: usize> Outer<Vector<T, N>> for Vector<T, M> where
T: Mul<Output = T> + Copy,
[src]impl<T, const N: usize> RemAssign<T> for Vector<T, N> where
T: RemAssign + Copy,
[src]
impl<T, const N: usize> RemAssign<T> for Vector<T, N> where
T: RemAssign + Copy,
[src]fn rem_assign(&mut self, a: T)
[src]
fn rem_assign(&mut self, a: T)
[src]Performs the %=
operation. Read more
impl<T, const N: usize> RemAssign<Vector<T, N>> for Vector<T, N> where
T: RemAssign,
[src]
impl<T, const N: usize> RemAssign<Vector<T, N>> for Vector<T, N> where
T: RemAssign,
[src]fn rem_assign(&mut self, vec: Vector<T, N>)
[src]
fn rem_assign(&mut self, vec: Vector<T, N>)
[src]Performs the %=
operation. Read more
impl<T, const N: usize> Reorder<Linear<T, N>, Vector<T, N>> for Shift<T, N> where
Linear<T, N>: Transform<Vector<T, N>> + Copy,
Self: Transform<Vector<T, N>>,
[src]
impl<T, const N: usize> Reorder<Linear<T, N>, Vector<T, N>> for Shift<T, N> where
Linear<T, N>: Transform<Vector<T, N>> + Copy,
Self: Transform<Vector<T, N>>,
[src]impl<T> Reorder<Rotation2<T>, Vector<T, 2_usize>> for Shift<T, 2> where
Rotation2<T>: Transform<Vector<T, 2>> + Copy,
Self: Transform<Vector<T, 2>>,
[src]
impl<T> Reorder<Rotation2<T>, Vector<T, 2_usize>> for Shift<T, 2> where
Rotation2<T>: Transform<Vector<T, 2>> + Copy,
Self: Transform<Vector<T, 2>>,
[src]impl<T> Reorder<Rotation3<T>, Vector<T, 3_usize>> for Shift<T, 3> where
Rotation3<T>: Transform<Vector<T, 3>> + Copy,
Self: Transform<Vector<T, 3>>,
[src]
impl<T> Reorder<Rotation3<T>, Vector<T, 3_usize>> for Shift<T, 3> where
Rotation3<T>: Transform<Vector<T, 3>> + Copy,
Self: Transform<Vector<T, 3>>,
[src]impl<T, const N: usize> Reorder<Scale<T>, Vector<T, N>> for Shift<T, N> where
Scale<T>: Transform<Vector<T, N>> + Copy,
Self: Transform<Vector<T, N>>,
[src]
impl<T, const N: usize> Reorder<Scale<T>, Vector<T, N>> for Shift<T, N> where
Scale<T>: Transform<Vector<T, N>> + Copy,
Self: Transform<Vector<T, N>>,
[src]impl<T> Reorder<Shift<T, 2_usize>, Vector<T, 2_usize>> for Rotation2<T> where
Self: Transform<Vector<T, 2>>,
Shift<T, 2>: Transform<Vector<T, 2>>,
[src]
impl<T> Reorder<Shift<T, 2_usize>, Vector<T, 2_usize>> for Rotation2<T> where
Self: Transform<Vector<T, 2>>,
Shift<T, 2>: Transform<Vector<T, 2>>,
[src]impl<T> Reorder<Shift<T, 3_usize>, Vector<T, 3_usize>> for Rotation3<T> where
Self: Transform<Vector<T, 3>>,
Shift<T, 3>: Transform<Vector<T, 3>>,
[src]
impl<T> Reorder<Shift<T, 3_usize>, Vector<T, 3_usize>> for Rotation3<T> where
Self: Transform<Vector<T, 3>>,
Shift<T, 3>: Transform<Vector<T, 3>>,
[src]impl<T, const N: usize> Reorder<Shift<T, N>, Vector<T, N>> for Linear<T, N> where
Self: Transform<Vector<T, N>>,
Shift<T, N>: Transform<Vector<T, N>>,
[src]
impl<T, const N: usize> Reorder<Shift<T, N>, Vector<T, N>> for Linear<T, N> where
Self: Transform<Vector<T, N>>,
Shift<T, N>: Transform<Vector<T, N>>,
[src]impl<T, const N: usize> Reorder<Shift<T, N>, Vector<T, N>> for Scale<T> where
Self: Transform<Vector<T, N>>,
Shift<T, N>: Transform<Vector<T, N>>,
[src]
impl<T, const N: usize> Reorder<Shift<T, N>, Vector<T, N>> for Scale<T> where
Self: Transform<Vector<T, N>>,
Shift<T, N>: Transform<Vector<T, N>>,
[src]impl<T, const N: usize> SubAssign<Vector<T, N>> for Vector<T, N> where
T: SubAssign,
[src]
impl<T, const N: usize> SubAssign<Vector<T, N>> for Vector<T, N> where
T: SubAssign,
[src]fn sub_assign(&mut self, vec: Vector<T, N>)
[src]
fn sub_assign(&mut self, vec: Vector<T, N>)
[src]Performs the -=
operation. Read more
impl<T> Transform<Vector<T, 2_usize>> for Rotation2<T> where
T: Neg<Output = T> + Num + Copy,
[src]
impl<T> Transform<Vector<T, 2_usize>> for Rotation2<T> where
T: Neg<Output = T> + Num + Copy,
[src]impl<T> Transform<Vector<T, 3_usize>> for Rotation3<T> where
T: Neg<Output = T> + Num + Copy,
[src]
impl<T> Transform<Vector<T, 3_usize>> for Rotation3<T> where
T: Neg<Output = T> + Num + Copy,
[src]impl<T, const N: usize> Transform<Vector<T, N>> for Linear<T, N> where
T: Neg<Output = T> + Num + Copy,
[src]
impl<T, const N: usize> Transform<Vector<T, N>> for Linear<T, N> where
T: Neg<Output = T> + Num + Copy,
[src]impl<T, const N: usize> Transform<Vector<T, N>> for Shift<T, N> where
T: Neg<Output = T> + Num + Copy,
[src]
impl<T, const N: usize> Transform<Vector<T, N>> for Shift<T, N> where
T: Neg<Output = T> + Num + Copy,
[src]impl<T, const N: usize> Transform<Vector<T, N>> for Scale<T> where
T: Num + Inv<Output = T> + Copy,
[src]
impl<T, const N: usize> Transform<Vector<T, N>> for Scale<T> where
T: Num + Inv<Output = T> + Copy,
[src]impl<T: Copy, const N: usize> Copy for Vector<T, N>
[src]
impl<T, const N: usize> StructuralPartialEq for Vector<T, N>
[src]
Auto Trait Implementations
impl<T, const N: usize> RefUnwindSafe for Vector<T, N> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, const N: usize> Send for Vector<T, N> where
T: Send,
T: Send,
impl<T, const N: usize> Sync for Vector<T, N> where
T: Sync,
T: Sync,
impl<T, const N: usize> Unpin for Vector<T, N> where
T: Unpin,
T: Unpin,
impl<T, const N: usize> UnwindSafe for Vector<T, N> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T, Rhs> NumAssignOps<Rhs> for T where
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,
[src]
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,
impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,
[src]
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,