This commit is contained in:
2020-11-03 16:12:43 -07:00
parent de840360b7
commit 38ac951a83

View File

@@ -1,3 +1,45 @@
fn main() { use std::ops::Add;
println!("Hello, world!");
#[derive(Debug, PartialEq)]
struct Point {
x: i32,
y: i32,
}
impl Add for Point {
type Output = Point;
fn add(self, other: Point) -> Point {
Point {
x: self.x + other.x,
y: self.y + other.y,
}
}
}
#[derive(Debug)]
struct Millimeters(u32);
#[derive(Debug)]
struct Meters(u32);
impl Add<Meters> for Millimeters {
type Output = Millimeters;
fn add(self, other: Meters) -> Millimeters {
Millimeters(self.0 + (other.0 * 1000))
}
}
fn main() {
assert_eq!(
Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
Point { x: 3, y: 3 }
);
assert_eq!(
Millimeters(1001),
Millimeters(1) + Meters(1)
)
} }