pub fn cmp_id(
        hash_a: &FileHash,
        a: &PointerToMemberType,
        hash_b: &FileHash,
        b: &PointerToMemberType,
    ) -> cmp::Ordering {
        match (a.containing_type(hash_a), b.containing_type(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) => {}
        }
        match (a.member_type(hash_a), b.member_type(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) => {}
        }
        cmp::Ordering::Equal
    }
/// Compare the identifying information of two types.
///
/// Pointer to member types are considered equal if both the member type and containing
/// type 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.
Pointer to member types are considered equal if both the member type and containing
type 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 . Pointer to member types are considered equal if both the member type and containing type 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: &PointerToMemberType,
        hash_b: &FileHash,
        b: &PointerToMemberType,
    ) -> cmp::Ordering {
        match (a.containing_type(hash_a), b.containing_type(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) => {}
        }
        match (a.member_type(hash_a), b.member_type(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) => {}
        }
        cmp::Ordering::Equal
    }
pub fn cmp_id ( hash_a : & FileHash , a : & PointerToMemberType , hash_b : & FileHash , b : & PointerToMemberType , ) -> cmp :: Ordering { match ( a . containing_type ( hash_a ) , b . containing_type ( 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 ) => { } } match ( a . member_type ( hash_a ) , b . member_type ( 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 ) => { } } cmp :: Ordering :: Equal }
Compare the identifying information of two types.
Compare the identifying information of two types .
hash_a
&FileHash
a
&PointerToMemberType
hash_b
&FileHash
b
&PointerToMemberType
hash_a
&FileHash
a
&PointerToMemberType
hash_b
&FileHash
b
&PointerToMemberType