//! }
//!
//! impl Add<Point, Point> for Point {
-//! fn add(&self, other: &Point) -> Point {
+//! fn add(self, other: Point) -> Point {
//! Point {x: self.x + other.x, y: self.y + other.y}
//! }
//! }
//!
//! impl Sub<Point, Point> for Point {
-//! fn sub(&self, other: &Point) -> Point {
+//! fn sub(self, other: Point) -> Point {
//! Point {x: self.x - other.x, y: self.y - other.y}
//! }
//! }
/// struct Foo;
///
/// impl Add<Foo, Foo> for Foo {
-/// fn add(&self, _rhs: &Foo) -> Foo {
+/// fn add(self, _rhs: Foo) -> Foo {
/// println!("Adding!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl Sub<Foo, Foo> for Foo {
-/// fn sub(&self, _rhs: &Foo) -> Foo {
+/// fn sub(self, _rhs: Foo) -> Foo {
/// println!("Subtracting!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl Mul<Foo, Foo> for Foo {
-/// fn mul(&self, _rhs: &Foo) -> Foo {
+/// fn mul(self, _rhs: Foo) -> Foo {
/// println!("Multiplying!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl Div<Foo, Foo> for Foo {
-/// fn div(&self, _rhs: &Foo) -> Foo {
+/// fn div(self, _rhs: Foo) -> Foo {
/// println!("Dividing!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl Rem<Foo, Foo> for Foo {
-/// fn rem(&self, _rhs: &Foo) -> Foo {
+/// fn rem(self, _rhs: Foo) -> Foo {
/// println!("Remainder-ing!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl BitAnd<Foo, Foo> for Foo {
-/// fn bitand(&self, _rhs: &Foo) -> Foo {
+/// fn bitand(self, _rhs: Foo) -> Foo {
/// println!("Bitwise And-ing!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl BitOr<Foo, Foo> for Foo {
-/// fn bitor(&self, _rhs: &Foo) -> Foo {
+/// fn bitor(self, _rhs: Foo) -> Foo {
/// println!("Bitwise Or-ing!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl BitXor<Foo, Foo> for Foo {
-/// fn bitxor(&self, _rhs: &Foo) -> Foo {
+/// fn bitxor(self, _rhs: Foo) -> Foo {
/// println!("Bitwise Xor-ing!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl Shl<Foo, Foo> for Foo {
-/// fn shl(&self, _rhs: &Foo) -> Foo {
+/// fn shl(self, _rhs: Foo) -> Foo {
/// println!("Shifting left!");
-/// *self
+/// self
/// }
/// }
///
/// struct Foo;
///
/// impl Shr<Foo, Foo> for Foo {
-/// fn shr(&self, _rhs: &Foo) -> Foo {
+/// fn shr(self, _rhs: Foo) -> Foo {
/// println!("Shifting right!");
-/// *self
+/// self
/// }
/// }
///