Module std::ops[src]
Overloadable operators
Implementing these traits allows you to get an effect similar to overloading operators.
The values for the right hand side of an operator are automatically
borrowed, so a + b is sugar for a.add(&b).
All of these traits are imported by the prelude, so they are available in every Rust program.
Example
This example creates a Point struct that implements Add and Sub, and then
demonstrates adding and subtracting two Points.
#[deriving(Show)] struct Point { x: int, y: int } impl Add<Point, Point> for 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 { Point {x: self.x - other.x, y: self.y - other.y} } } fn main() { println!("{}", Point {x: 1, y: 0} + Point {x: 2, y: 3}); println!("{}", Point {x: 1, y: 0} - Point {x: 2, y: 3}); }
See the documentation for each trait for a minimum implementation that prints something to the screen.
Traits
| Add | The |
| BitAnd | The |
| BitOr | The |
| BitXor | The |
| Deref | The |
| DerefMut | The |
| Div | The |
| Drop | The |
| Fn | A version of the call operator that takes an immutable receiver. |
| FnMut | A version of the call operator that takes a mutable receiver. |
| FnOnce | A version of the call operator that takes a by-value receiver. |
| Index | The |
| Mul | The |
| Neg | The |
| Not | The |
| Rem | The |
| Shl | The |
| Shr | The |
| Sub | The |