Widziałem pytanie podobne do tego, ale nie takie, które mówi mi dokładnie, jak wdrożyć Ord
dla struct. Na przykład, następujący:Jak zaimplementować narzędzie Ord dla struktury?
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
}
}
To daje mi błąd:
error: the trait `core::cmp::Eq` is not implemented for the type `SomeNum` [E0277]
Jak to naprawić? Próbowałem zmieniając wykonawczych:
impl Ord for SomeNum where SomeNum: PartialOrd + PartialEq + Eq {...}
i dodając odpowiednie partial_cmp
i eq
funkcje, ale daje mi błąd, że obie te metody nie są członkiem Ord
.
* Widziałem pytanie podobne do tego, ale * - proszę ** dołącz linki do tych pytań ** po ich znalezieniu. Dzięki temu odbierający mogą lepiej zrozumieć, jakie wyjaśnienia już przeczytaliście, a które nie mają sensu, w przeciwnym razie grozi nam powtarzanie tego samego, co już wiemy, marnując czas wszystkich! Jest to również dobre dla przyszłych poszukiwaczy, ponieważ mogą oni łatwo przejść do powiązanych pytań. – Shepmaster