Как реализовать PartialEq для структуры, используя ссылку на объект признака

У меня есть следующий код, который не компилируется, потому что PartialEq не реализовано для &MyTrait:

trait MyTrait {}

#[derive(PartialEq)]
struct A<'a> {
    t: &'a MyTrait
}

Как я могу реализовать PartialEq за &MyTrait таким образом, что он проверяет, имеют ли обе переменные одинаковый базовый тип и имеют одинаковые значения полей, как я сделал бы в Python:

def __eq__(self, other):
    if isinstance(self, other.__class__):
        return self.__dict__ == other.__dict__
    return False

Есть ли способ сделать это в Rust?

0 ответов

Другие вопросы по тегам