From 31c9bda5a2e5b911e23391f2375bc53137a92417 Mon Sep 17 00:00:00 2001 From: Stephan Rehfeld Date: Wed, 29 Apr 2026 17:49:48 +0200 Subject: [PATCH] Implementing Sub for our Vector --- src/main.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 2461256..e1a0a9b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::ops::Add; +use std::ops::{Add, Sub}; #[derive(Copy, Clone)] struct Vector3 { @@ -21,11 +21,21 @@ impl Add for Vector3 { } } +impl Sub for Vector3 { + type Output = Vector3; + + fn sub(self, rhs: Vector3) -> Self::Output { + Vector3::new(self.x - rhs.x, self.y - rhs.y, self.z - rhs.z) + } +} + fn main() { let vec1 = Vector3::new(1.0, 0.0, 0.0); let vec2 = Vector3::new(0.0, 1.0, 0.0); let vec3 = vec1 + vec2; + let vec4 = vec1 - vec2; println!("x = {}, y = {}, z = {}", vec3.x, vec3.y, vec3.z); + println!("x = {}, y = {}, z = {}", vec4.x, vec4.y, vec4.z); }