diff options
| author | Stein Somers <git@steinsomers.be> | 2020-01-23 07:48:09 +0100 |
|---|---|---|
| committer | Stein Somers <git@steinsomers.be> | 2020-02-07 02:41:28 +0100 |
| commit | ae03e16d083d6d3cc9ad98ecb06e2f6cc2f5df68 (patch) | |
| tree | fb09d3826b0c4f6bbb1f62c5689e0c1e0c8ed861 /src/liballoc/collections/btree/node.rs | |
| parent | be051adb57f1ff28edf997c3379aed2934bff104 (diff) | |
| download | rust-ae03e16d083d6d3cc9ad98ecb06e2f6cc2f5df68.tar.gz rust-ae03e16d083d6d3cc9ad98ecb06e2f6cc2f5df68.zip | |
Lift range_search up one level of abstraction
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> { |
