pub trait StableCompare {
    const CAN_USE_UNSTABLE_SORT: bool;

    // Required method
    fn stable_cmp(&self, other: &Self) -> Ordering;
Expand description

This is a companion trait to StableOrd. Some types like Symbol can be compared in a cross-session stable way, but their Ord implementation is not stable. In such cases, a StableOrd implementation can be provided to offer a lightweight way for stable sorting. (The more heavyweight option is to sort via ToStableHashKey, but then sorting needs to have access to a stable hashing context and ToStableHashKey can also be expensive as in the case of Symbol where it has to allocate a String.)

See the documentation of StableOrd for how stable sort order is defined. The same definition applies here. Be careful when implementing this trait.

Required Associated Constants§

Required Methods§


fn stable_cmp(&self, other: &Self) -> Ordering

Object Safety§

This trait is not object safe.



impl<T: StableOrd> StableCompare for T

StableOrd denotes that the type’s Ord implementation is stable, so we can implement StableCompare by just delegating to Ord.