pub trait Cmp<Rhs = Self> {
    type Output;
}
Expand description

A type operator for comparing Self and Rhs. It provides a similar functionality to the function core::cmp::Ord::cmp but for types.

§Example

use typenum::{Cmp, Ord, N3, P2, P5};
use std::cmp::Ordering;

assert_eq!(<P2 as Cmp<N3>>::Output::to_ordering(), Ordering::Greater);
assert_eq!(<P2 as Cmp<P2>>::Output::to_ordering(), Ordering::Equal);
assert_eq!(<P2 as Cmp<P5>>::Output::to_ordering(), Ordering::Less);

Required Associated Types§

source

type Output

The result of the comparison. It should only ever be one of Greater, Less, or Equal.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Cmp for B0

source§

impl Cmp for B1

source§

impl Cmp for UTerm

Zero == Zero

source§

impl Cmp for Z0

0 == 0

source§

impl Cmp<B0> for B1

source§

impl Cmp<B1> for B0

§

type Output = Less

source§

impl<Nl, Nr> Cmp<NInt<Nr>> for NInt<Nl>
where Nl: Unsigned + NonZero, Nr: Cmp<Nl> + Unsigned + NonZero,

-X <==> -Y

§

type Output = <Nr as Cmp<Nl>>::Output

source§

impl<P, N> Cmp<NInt<N>> for PInt<P>
where P: Unsigned + NonZero, N: Unsigned + NonZero,

X > - Y

source§

impl<P, N> Cmp<PInt<P>> for NInt<N>
where P: Unsigned + NonZero, N: Unsigned + NonZero,

-X < Y

§

type Output = Less

source§

impl<Pl, Pr> Cmp<PInt<Pr>> for PInt<Pl>
where Pl: Cmp<Pr> + Unsigned + NonZero, Pr: Unsigned + NonZero,

X <==> Y

§

type Output = <Pl as Cmp<Pr>>::Output

source§

impl<U> Cmp<NInt<U>> for Z0
where U: Unsigned + NonZero,

0 > -X

source§

impl<U> Cmp<PInt<U>> for Z0
where U: Unsigned + NonZero,

0 < X

§

type Output = Less

source§

impl<U> Cmp<Z0> for NInt<U>
where U: Unsigned + NonZero,

-X < 0

§

type Output = Less

source§

impl<U> Cmp<Z0> for PInt<U>
where U: Unsigned + NonZero,

X > 0

source§

impl<U, B> Cmp<UInt<U, B>> for UTerm
where U: Unsigned, B: Bit,

Zero < Nonzero

§

type Output = Less

source§

impl<U, B> Cmp<UTerm> for UInt<U, B>
where U: Unsigned, B: Bit,

Nonzero > Zero

source§

impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B0>
where Ul: Unsigned + PrivateCmp<Ur, Equal>, Ur: Unsigned,

UInt<Ul, B0> cmp with UInt<Ur, B0>: SoFar is Equal

§

type Output = <Ul as PrivateCmp<Ur, Equal>>::Output

source§

impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B1>
where Ul: Unsigned + PrivateCmp<Ur, Greater>, Ur: Unsigned,

UInt<Ul, B1> cmp with UInt<Ur, B0>: SoFar is Greater

§

type Output = <Ul as PrivateCmp<Ur, Greater>>::Output

source§

impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B0>
where Ul: Unsigned + PrivateCmp<Ur, Less>, Ur: Unsigned,

UInt<Ul, B0> cmp with UInt<Ur, B1>: SoFar is Less

§

type Output = <Ul as PrivateCmp<Ur, Less>>::Output

source§

impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B1>
where Ul: Unsigned + PrivateCmp<Ur, Equal>, Ur: Unsigned,

UInt<Ul, B1> cmp with UInt<Ur, B1>: SoFar is Equal

§

type Output = <Ul as PrivateCmp<Ur, Equal>>::Output