J'ai une structure qui stocke toutes les références en lecture seule, par exemple :
struct Pt { x : f32, y : f32, }
struct Tr<'a> { a : &'a Pt }
Je veux impl Eq
para Tr
pour vérifier si la sous-couche a
référence à exactement la même Pt
:
let trBase1 = Pt::new(0.0, 0.0);
let trBase2 = Pt::new(0.0, 0.0);
assert!(trBase1 == trBase2); // ok.
let tr1 = Tr::new(&trBase1);
let tr2 = Tr::new(&trBase2);
let tr3 = Tr::new(&trBase1);
assert!(tr1 == tr3); // ok.
assert!(tr1.a == te2.a); // ok. Using Eq for Pt that compare values.
assert!(tr1 != tr2); // panicked! Not intended.
donc maintenant j'ai
impl<'a> PartialEq for Tr<'a> {
fn eq(&self, v : &Tr<'a>) -> bool {
// self.a == v.a // doesn't work.
}
}
qu'est-ce que je dois écrire ?