diff options
Diffstat (limited to 'src/liballoc/collections/btree/node.rs')
| -rw-r--r-- | src/liballoc/collections/btree/node.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/liballoc/collections/btree/node.rs b/src/liballoc/collections/btree/node.rs index e4123c9a20b..abf926186e8 100644 --- a/src/liballoc/collections/btree/node.rs +++ b/src/liballoc/collections/btree/node.rs @@ -31,6 +31,7 @@ // - A node of length `n` has `n` keys, `n` values, and (in an internal node) `n + 1` edges. // This implies that even an empty internal node has at least one edge. +use core::cmp::Ordering; use core::marker::PhantomData; use core::mem::{self, MaybeUninit}; use core::ptr::{self, NonNull, Unique}; @@ -832,6 +833,14 @@ impl<BorrowType, K, V, NodeType, HandleType> PartialEq } } +impl<BorrowType, K, V, NodeType, HandleType> PartialOrd + for Handle<NodeRef<BorrowType, K, V, NodeType>, HandleType> +{ + fn partial_cmp(&self, other: &Self) -> Option<Ordering> { + if self.node.node == other.node.node { Some(self.idx.cmp(&other.idx)) } else { None } + } +} + impl<BorrowType, K, V, NodeType, HandleType> Handle<NodeRef<BorrowType, K, V, NodeType>, HandleType> { |
