我看过一个类似的问题,但没有人能告诉我如何为结构体实现Ord
。例如,以下内容:
struct SomeNum {
name: String,
value: u32,
}
impl Ord for SomeNum {
fn cmp(&self, other:&Self) -> Ordering {
let size1 = self.value;
let size2 = other.value;
if size1 > size2 {
Ordering::Less
}
if size1 < size2 {
Ordering::Greater
}
Ordering::Equal
}
}
这让我产生了错误:
error: the trait `core::cmp::Eq` is not implemented for the type `SomeNum` [E0277]
我该如何修复这个问题?我已经尝试将实现更改为:
impl Ord for SomeNum where SomeNum: PartialOrd + PartialEq + Eq {...}
我尝试添加适当的partial_cmp
和eq
函数,但是编译器提示这两个方法都不是Ord
的成员。
并添加适当的partial_cmp
和eq
函数,但它告诉我这两个方法都不是Ord
的成员。