diff options
| author | Steven Fackler <sfackler@gmail.com> | 2014-06-17 23:25:51 -0700 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2014-06-29 21:42:09 -0700 |
| commit | 55cae0a094bbdcd0e9d5e697ce4f38cbd783bbc7 (patch) | |
| tree | 3385d84daae977e0d2bf08decdaf807e1d03337d /src/libnum | |
| parent | bb5695b95c288c442dbe528f7e1c1b08f79f033d (diff) | |
| download | rust-55cae0a094bbdcd0e9d5e697ce4f38cbd783bbc7.tar.gz rust-55cae0a094bbdcd0e9d5e697ce4f38cbd783bbc7.zip | |
Implement RFC#28: Add PartialOrd::partial_cmp
I ended up altering the semantics of Json's PartialOrd implementation. It used to be the case that Null < Null, but I can't think of any reason for an ordering other than the default one so I just switched it over to using the derived implementation. This also fixes broken `PartialOrd` implementations for `Vec` and `TreeMap`. RFC: 0028-partial-cmp
Diffstat (limited to 'src/libnum')
| -rw-r--r-- | src/libnum/bigint.rs | 8 | ||||
| -rw-r--r-- | src/libnum/rational.rs | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/libnum/bigint.rs b/src/libnum/bigint.rs index 9011aafc009..cc3753def59 100644 --- a/src/libnum/bigint.rs +++ b/src/libnum/bigint.rs @@ -91,8 +91,8 @@ impl Eq for BigUint {} impl PartialOrd for BigUint { #[inline] - fn lt(&self, other: &BigUint) -> bool { - self.cmp(other) == Less + fn partial_cmp(&self, other: &BigUint) -> Option<Ordering> { + Some(self.cmp(other)) } } @@ -816,8 +816,8 @@ impl Eq for BigInt {} impl PartialOrd for BigInt { #[inline] - fn lt(&self, other: &BigInt) -> bool { - self.cmp(other) == Less + fn partial_cmp(&self, other: &BigInt) -> Option<Ordering> { + Some(self.cmp(other)) } } diff --git a/src/libnum/rational.rs b/src/libnum/rational.rs index 971b6b1b51b..9a455edf2c0 100644 --- a/src/libnum/rational.rs +++ b/src/libnum/rational.rs @@ -193,7 +193,8 @@ macro_rules! cmp_impl { }; } cmp_impl!(impl PartialEq, eq, ne) -cmp_impl!(impl PartialOrd, lt, gt, le, ge) +cmp_impl!(impl PartialOrd, lt -> bool, gt -> bool, le -> bool, ge -> bool, + partial_cmp -> Option<cmp::Ordering>) cmp_impl!(impl Eq, ) cmp_impl!(impl Ord, cmp -> cmp::Ordering) |
