Avatar ·

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 schreiben kann: ```rust let a = Point { x: 1, y: 2 }; let b = Point { x: 3, y: 4 }; let c = &a + &b; ``` Ich habe versucht, es so zu schreiben: ```rust impl std::ops::Add for &Point { type Output = Point;