pub fn cmp_id(
        hash_a: &FileHash,
        a: &TypeModifier,
        hash_b: &FileHash,
        b: &TypeModifier,
    ) -> cmp::Ordering {
        match (a.ty(hash_a), b.ty(hash_b)) {
            (Some(ref ty_a), Some(ref ty_b)) => {
                let ord = Type::cmp_id(hash_a, ty_a, hash_b, ty_b);
                if ord != cmp::Ordering::Equal {
                    return ord;
                }
            }
            (Some(_), None) => {
                return cmp::Ordering::Less;
            }
            (None, Some(_)) => {
                return cmp::Ordering::Greater;
            }
            (None, None) => {}
        }
        let discr_a = a.kind.discriminant_value();
        let discr_b = b.kind.discriminant_value();
        discr_a.cmp(&discr_b)
    }
/// Compare the identifying information of two types.
///
/// Type modifiers are equal if the modifiers are the same and the types being modified
/// are equal.
///
/// This can be used to sort, and to determine if two types refer to the same definition
/// (even if there are differences in the definitions).
Compare the identifying information of two types.
Type modifiers are equal if the modifiers are the same and the types being modified
are equal.

This can be used to sort, and to determine if two types refer to the same definition
(even if there are differences in the definitions).
Compare the identifying information of two types . Type modifiers are equal if the modifiers are the same and the types being modified are equal . This can be used to sort and to determine if two types refer to the same definition ( even if there are differences in the definitions ) .
pub fn cmp_id(
        hash_a: &FileHash,
        a: &TypeModifier,
        hash_b: &FileHash,
        b: &TypeModifier,
    ) -> cmp::Ordering {
        match (a.ty(hash_a), b.ty(hash_b)) {
            (Some(ref ty_a), Some(ref ty_b)) => {
                let ord = Type::cmp_id(hash_a, ty_a, hash_b, ty_b);
                if ord != cmp::Ordering::Equal {
                    return ord;
                }
            }
            (Some(_), None) => {
                return cmp::Ordering::Less;
            }
            (None, Some(_)) => {
                return cmp::Ordering::Greater;
            }
            (None, None) => {}
        }
        let discr_a = a.kind.discriminant_value();
        let discr_b = b.kind.discriminant_value();
        discr_a.cmp(&discr_b)
    }
pub fn cmp_id ( hash_a : & FileHash , a : & TypeModifier , hash_b : & FileHash , b : & TypeModifier , ) -> cmp :: Ordering { match ( a . ty ( hash_a ) , b . ty ( hash_b ) ) { ( Some ( ref ty_a ) , Some ( ref ty_b ) ) => { let ord = Type :: cmp_id ( hash_a , ty_a , hash_b , ty_b ) ; if ord != cmp :: Ordering :: Equal { return ord ; } } ( Some ( _ ) , None ) => { return cmp :: Ordering :: Less ; } ( None , Some ( _ ) ) => { return cmp :: Ordering :: Greater ; } ( None , None ) => { } } let discr_a = a . kind . discriminant_value ( ) ; let discr_b = b . kind . discriminant_value ( ) ; discr_a . cmp ( & discr_b ) }
Compare the identifying information of two types.
Compare the identifying information of two types .
hash_a
&FileHash
a
&TypeModifier
hash_b
&FileHash
b
&TypeModifier
hash_a
&FileHash
a
&TypeModifier
hash_b
&FileHash
b
&TypeModifier