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§
const CAN_USE_UNSTABLE_SORT: bool
Required Methods§
fn stable_cmp(&self, other: &Self) -> Ordering
Object Safety§
Implementors§
source§impl<T: StableOrd> StableCompare for T
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.