pub fn try_cmp(self, rhs: Self) -> Result<::std::cmp::Ordering, ConstMathErr> {
        match self.infer(rhs)? {
            (I8(a), I8(b)) => Ok(a.cmp(&b)),
            (I16(a), I16(b)) => Ok(a.cmp(&b)),
            (I32(a), I32(b)) => Ok(a.cmp(&b)),
            (I64(a), I64(b)) => Ok(a.cmp(&b)),
            (Isize(Is16(a)), Isize(Is16(b))) => Ok(a.cmp(&b)),
            (Isize(Is32(a)), Isize(Is32(b))) => Ok(a.cmp(&b)),
            (Isize(Is64(a)), Isize(Is64(b))) => Ok(a.cmp(&b)),
            (U8(a), U8(b)) => Ok(a.cmp(&b)),
            (U16(a), U16(b)) => Ok(a.cmp(&b)),
            (U32(a), U32(b)) => Ok(a.cmp(&b)),
            (U64(a), U64(b)) => Ok(a.cmp(&b)),
            (Usize(Us16(a)), Usize(Us16(b))) => Ok(a.cmp(&b)),
            (Usize(Us32(a)), Usize(Us32(b))) => Ok(a.cmp(&b)),
            (Usize(Us64(a)), Usize(Us64(b))) => Ok(a.cmp(&b)),
            (Infer(a), Infer(b)) => Ok(a.cmp(&b)),
            (InferSigned(a), InferSigned(b)) => Ok(a.cmp(&b)),
            _ => Err(CmpBetweenUnequalTypes),
        }
    }
/// Compares the values if they are of the same type
Compares the values if they are of the same type
Compares the values if they are of the same type
pub fn try_cmp(self, rhs: Self) -> Result<::std::cmp::Ordering, ConstMathErr> {
        match self.infer(rhs)? {
            (I8(a), I8(b)) => Ok(a.cmp(&b)),
            (I16(a), I16(b)) => Ok(a.cmp(&b)),
            (I32(a), I32(b)) => Ok(a.cmp(&b)),
            (I64(a), I64(b)) => Ok(a.cmp(&b)),
            (Isize(Is16(a)), Isize(Is16(b))) => Ok(a.cmp(&b)),
            (Isize(Is32(a)), Isize(Is32(b))) => Ok(a.cmp(&b)),
            (Isize(Is64(a)), Isize(Is64(b))) => Ok(a.cmp(&b)),
            (U8(a), U8(b)) => Ok(a.cmp(&b)),
            (U16(a), U16(b)) => Ok(a.cmp(&b)),
            (U32(a), U32(b)) => Ok(a.cmp(&b)),
            (U64(a), U64(b)) => Ok(a.cmp(&b)),
            (Usize(Us16(a)), Usize(Us16(b))) => Ok(a.cmp(&b)),
            (Usize(Us32(a)), Usize(Us32(b))) => Ok(a.cmp(&b)),
            (Usize(Us64(a)), Usize(Us64(b))) => Ok(a.cmp(&b)),
            (Infer(a), Infer(b)) => Ok(a.cmp(&b)),
            (InferSigned(a), InferSigned(b)) => Ok(a.cmp(&b)),
            _ => Err(CmpBetweenUnequalTypes),
        }
    }
pub fn try_cmp ( self , rhs : Self ) -> Result < :: std :: cmp :: Ordering , ConstMathErr > { match self . infer ( rhs ) ? { ( I8 ( a ) , I8 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( I16 ( a ) , I16 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( I32 ( a ) , I32 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( I64 ( a ) , I64 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( Isize ( Is16 ( a ) ) , Isize ( Is16 ( b ) ) ) => Ok ( a . cmp ( & b ) ) , ( Isize ( Is32 ( a ) ) , Isize ( Is32 ( b ) ) ) => Ok ( a . cmp ( & b ) ) , ( Isize ( Is64 ( a ) ) , Isize ( Is64 ( b ) ) ) => Ok ( a . cmp ( & b ) ) , ( U8 ( a ) , U8 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( U16 ( a ) , U16 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( U32 ( a ) , U32 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( U64 ( a ) , U64 ( b ) ) => Ok ( a . cmp ( & b ) ) , ( Usize ( Us16 ( a ) ) , Usize ( Us16 ( b ) ) ) => Ok ( a . cmp ( & b ) ) , ( Usize ( Us32 ( a ) ) , Usize ( Us32 ( b ) ) ) => Ok ( a . cmp ( & b ) ) , ( Usize ( Us64 ( a ) ) , Usize ( Us64 ( b ) ) ) => Ok ( a . cmp ( & b ) ) , ( Infer ( a ) , Infer ( b ) ) => Ok ( a . cmp ( & b ) ) , ( InferSigned ( a ) , InferSigned ( b ) ) => Ok ( a . cmp ( & b ) ) , _ => Err ( CmpBetweenUnequalTypes ) , } }
Compares the values if they are of the same type
Compares the values if they are of the same type
self
rhs
Self
self
rhs
Self