Enable clippy::derive_ord_xor_partial_ord (#9371)

This PR enables the
[`clippy::derive_ord_xor_partial_ord`](https://rust-lang.github.io/rust-clippy/master/index.html#/derive_ord_xor_partial_ord)
rule and fixes the outstanding violations.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2024-03-14 17:55:57 -04:00 committed by GitHub
parent 35c9216ed7
commit 4939d23bd3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 6 deletions

View File

@ -411,7 +411,6 @@ style = "allow"
almost_complete_range = "allow"
arc_with_non_send_sync = "allow"
borrowed_box = "allow"
derive_ord_xor_partial_ord = "allow"
let_underscore_future = "allow"
map_entry = "allow"
non_canonical_clone_impl = "allow"

View File

@ -49,7 +49,7 @@ pub trait PromptTemplate {
}
#[repr(i8)]
#[derive(PartialEq, Eq, Ord)]
#[derive(PartialEq, Eq)]
pub enum PromptPriority {
/// Ignores truncation.
Mandatory,
@ -59,11 +59,17 @@ pub enum PromptPriority {
impl PartialOrd for PromptPriority {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
Some(self.cmp(other))
}
}
impl Ord for PromptPriority {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
match (self, other) {
(Self::Mandatory, Self::Mandatory) => Some(std::cmp::Ordering::Equal),
(Self::Mandatory, Self::Ordered { .. }) => Some(std::cmp::Ordering::Greater),
(Self::Ordered { .. }, Self::Mandatory) => Some(std::cmp::Ordering::Less),
(Self::Ordered { order: a }, Self::Ordered { order: b }) => b.partial_cmp(a),
(Self::Mandatory, Self::Mandatory) => std::cmp::Ordering::Equal,
(Self::Mandatory, Self::Ordered { .. }) => std::cmp::Ordering::Greater,
(Self::Ordered { .. }, Self::Mandatory) => std::cmp::Ordering::Less,
(Self::Ordered { order: a }, Self::Ordered { order: b }) => b.cmp(a),
}
}
}