Я видел вопрос, похожий на этот, но не тот, который подсказывает мне, как реализовать Ord
для структуры. Например, следующее:Как реализовать 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
.
* Я видел вопрос, подобный этому, но * - пожалуйста ** включите ссылки на эти вопросы **, как только вы их найдете. Это позволяет ответчикам лучше понять, какие объяснения вы уже прочитали, которые не имеют смысла, иначе мы рискуем просто повторить то же самое, что вы уже знаете, тратя время на все! Это также хорошо для будущих искателей, поскольку они могут легко перейти к связанным вопросам. – Shepmaster