Wie implementiere ich das Add-Trait für eine Referenz auf eine Struktur in Rust?
Hallo! Ich lerne Rust und versuche, den `+`-Operator für meine Struktur zu überladen. Ich habe eine Struktur `Point` mit zwei Feldern `x` und `y`. Ich möchte, dass man zwei `Point`-Instanzen addieren kann, indem man sie als Referenz übergibt, um den Besitz nicht zu verschieben.
Hier ist mein 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 }
}
}
```
Das funktioniert, aber es konsumiert `self` und `other` by value. Ich möchte, dass man Folgendes schreiben kann:
```rust
let a = Point { x: 1, y: 2 };
let b = Point { x: 3, y: 4 };
let c = &a + &b;
```
Ich habe es so versucht:
```rust
impl std::ops::Add for &Point {
type Output = Point;