summaryrefslogtreecommitdiffstats
path: root/src/doc/book/listings/ch19-advanced-features/listing-19-14
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/book/listings/ch19-advanced-features/listing-19-14')
-rw-r--r--src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.lock6
-rw-r--r--src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.toml6
-rw-r--r--src/doc/book/listings/ch19-advanced-features/listing-19-14/src/main.rs25
3 files changed, 37 insertions, 0 deletions
diff --git a/src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.lock b/src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.lock
new file mode 100644
index 000000000..b1977d01e
--- /dev/null
+++ b/src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.lock
@@ -0,0 +1,6 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "traits-example"
+version = "0.1.0"
+
diff --git a/src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.toml b/src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.toml
new file mode 100644
index 000000000..52395a587
--- /dev/null
+++ b/src/doc/book/listings/ch19-advanced-features/listing-19-14/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "traits-example"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/src/doc/book/listings/ch19-advanced-features/listing-19-14/src/main.rs b/src/doc/book/listings/ch19-advanced-features/listing-19-14/src/main.rs
new file mode 100644
index 000000000..9111fbc55
--- /dev/null
+++ b/src/doc/book/listings/ch19-advanced-features/listing-19-14/src/main.rs
@@ -0,0 +1,25 @@
+use std::ops::Add;
+
+#[derive(Debug, Copy, Clone, 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,
+ }
+ }
+}
+
+fn main() {
+ assert_eq!(
+ Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
+ Point { x: 3, y: 3 }
+ );
+}