Wie implementiert man 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 Instanzen von `Point` per Referenz addieren kann, um das Eigentum 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 schreiben kann:
```rust
let a = Point { x: 1, y: 2 };
let b = Point { x: 3, y: 4 };
let c = &a + &b;
```
Ich habe versucht, so zu schreiben:
```rust
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 }
}
}
```
Aber der Compiler beschwert sich über die Lebensdauer (lifetime). Der Fehler lautet ungefähr: `mis