pub struct Q<N, D = P1>(/* private fields */)
where
N: Numerator<D>,
D: Denominator;Expand description
Q<N, D> represents a type-level rational number with numerator N and denominator D.
Implementations§
Trait Implementations§
source§impl<Nl, Dl, Nr, Dr, No, Do> Add<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateAddHelper<Q<Nr, Dr>, Output = Q<No, Do>>,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
impl<Nl, Dl, Nr, Dr, No, Do> Add<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateAddHelper<Q<Nr, Dr>, Output = Q<No, Do>>,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
source§impl<Nl, Dl, Nr, Dr> Cmp<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateCmpHelper<Q<Nr, Dr>>,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
impl<Nl, Dl, Nr, Dr> Cmp<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateCmpHelper<Q<Nr, Dr>>,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
source§impl<Nl, Dl, Nr, Dr, No, Do> Div<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: Mul<<Q<Nr, Dr> as Recip>::Output, Output = Q<No, Do>>,
Q<Nr, Dr>: Recip,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
impl<Nl, Dl, Nr, Dr, No, Do> Div<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: Mul<<Q<Nr, Dr> as Recip>::Output, Output = Q<No, Do>>,
Q<Nr, Dr>: Recip,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
source§impl<N, D> LowerHex for Q<N, D>where
Self: PrivateFmtHelper,
N: Numerator<D>,
D: Denominator,
impl<N, D> LowerHex for Q<N, D>where
Self: PrivateFmtHelper,
N: Numerator<D>,
D: Denominator,
source§impl<Nl, Dl, Nr, Dr, No, Do> Mul<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateMulHelper<Q<Nr, Dr>, Output = Q<No, Do>>,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
impl<Nl, Dl, Nr, Dr, No, Do> Mul<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateMulHelper<Q<Nr, Dr>, Output = Q<No, Do>>,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
source§impl<Nl, Dl, Nr, Dr> PartialEq<Q<Nr, Dr>> for Q<Nl, Dl>
impl<Nl, Dl, Nr, Dr> PartialEq<Q<Nr, Dr>> for Q<Nl, Dl>
source§impl<Nl, Dl, Nr, Dr> PartialOrd<Q<Nr, Dr>> for Q<Nl, Dl>
impl<Nl, Dl, Nr, Dr> PartialOrd<Q<Nr, Dr>> for Q<Nl, Dl>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moresource§impl<Un, Ud> Recip for Q<NInt<Un>, PInt<Ud>>where
Un: NonZeroUnsigned,
Ud: NonZeroUnsigned,
NInt<Un>: Numerator<PInt<Ud>>,
PInt<Ud>: Denominator,
NInt<Ud>: Numerator<PInt<Un>>,
PInt<Un>: Denominator,
impl<Un, Ud> Recip for Q<NInt<Un>, PInt<Ud>>where
Un: NonZeroUnsigned,
Ud: NonZeroUnsigned,
NInt<Un>: Numerator<PInt<Ud>>,
PInt<Ud>: Denominator,
NInt<Ud>: Numerator<PInt<Un>>,
PInt<Un>: Denominator,
source§impl<Un, Ud> Recip for Q<PInt<Un>, PInt<Ud>>where
Un: NonZeroUnsigned,
Ud: NonZeroUnsigned,
PInt<Un>: Numerator<PInt<Ud>> + Denominator,
PInt<Ud>: Denominator + Numerator<PInt<Un>>,
impl<Un, Ud> Recip for Q<PInt<Un>, PInt<Ud>>where
Un: NonZeroUnsigned,
Ud: NonZeroUnsigned,
PInt<Un>: Numerator<PInt<Ud>> + Denominator,
PInt<Ud>: Denominator + Numerator<PInt<Un>>,
source§impl<Nl, Dl, Nr, Dr, No, Do> Rem<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateRemHelper<Q<Nr, Dr>, Output = Q<No, Do>>,
Q<Nr, Dr>: NonZero,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
impl<Nl, Dl, Nr, Dr, No, Do> Rem<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: PrivateRemHelper<Q<Nr, Dr>, Output = Q<No, Do>>,
Q<Nr, Dr>: NonZero,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
source§impl<Nl, Dl, Nr, Dr, No, Do> Sub<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: Add<<Q<Nr, Dr> as Neg>::Output, Output = Q<No, Do>>,
Q<Nr, Dr>: Neg,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
impl<Nl, Dl, Nr, Dr, No, Do> Sub<Q<Nr, Dr>> for Q<Nl, Dl>where
Self: Add<<Q<Nr, Dr> as Neg>::Output, Output = Q<No, Do>>,
Q<Nr, Dr>: Neg,
Nl: Numerator<Dl>,
Dl: Denominator,
Nr: Numerator<Dr>,
Dr: Denominator,
No: Numerator<Do>,
Do: Denominator,
source§impl<N, D> UpperHex for Q<N, D>where
Self: PrivateFmtHelper,
N: Numerator<D>,
D: Denominator,
impl<N, D> UpperHex for Q<N, D>where
Self: PrivateFmtHelper,
N: Numerator<D>,
D: Denominator,
impl<N, D> Copy for Q<N, D>where
N: Numerator<D>,
D: Denominator,
impl<N, D> NonNegative for Q<N, D>
impl<N, D> NonZero for Q<N, D>
impl<N> NotOne for Q<N>
impl<N, D> NotOne for Q<N, D>
Auto Trait Implementations§
impl<N, D> RefUnwindSafe for Q<N, D>where
D: RefUnwindSafe,
N: RefUnwindSafe,
impl<N, D> Send for Q<N, D>
impl<N, D> Sync for Q<N, D>
impl<N, D> Unpin for Q<N, D>
impl<N, D> UnwindSafe for Q<N, D>where
D: UnwindSafe,
N: 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