Comment implémenter le trait Add pour une référence à une structure en Rust ?
Bonjour ! J'apprends Rust et j'essaie de surcharger l'opérateur `+` pour ma structure. J'ai une structure `Point` avec deux champs `x` et `y`. Je veux pouvoir additionner deux instances de `Point` en les passant par référence, pour ne pas déplacer la propriété.
Voici mon code :
```rust
struct Point {
x: i32,
y: i32,
}
impl std::ops::Add for Point {
type Output = Point;
fn add(self, other: Point) -> Point {
Point { x: self.x + other.x, y: self.y + other.y }
}
}
```
Cela fonctionne, mais il consomme `self` et `other` par valeur. Je veux pouvoir écrire :
```rust
let a = Point { x: 1, y: 2 };
let b = Point { x: 3, y: 4 };
let c = &a + &b;
```
J'ai essayé d'écrire comme ça :
```rust
impl std::ops::Add for &Point {
type Output = Point;