Added items

This commit is contained in:
2026-06-16 13:15:01 +02:00
parent fa6765cdd9
commit e4fbab190c
8 changed files with 366 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
pub module impl_test;
struct Vector2 {
x i32,
y i32,
}
impl Vector2 {
pub fn i32 magnitude(*self) {
self.x * self.x + self.y * self.y
}
}
pub fn void test_inherent_impl() {
let v = Vector2 { x: 3, y: 4 };
assert_eq!(v.magnitude(), 25);
}
trait Display {
fn String display(*self);
}
impl Display for Vector2 {
fn String display(*self) {
format!("({}, {})", self.x, self.y)
}
}
pub fn void test_trait_impl_block() {
let v = Vector2 { x: 1, y: 2 };
let s = v.display();
assert_eq!(s.len() > 0, true);
}
impl Vector2 {
pub fn Vector2 add(*self, other Vector2) {
Vector2 {
x: self.x + other.x,
y: self.y + other.y,
}
}
}
pub fn void test_multiple_impls() {
let a = Vector2 { x: 1, y: 2 };
let b = Vector2 { x: 3, y: 4 };
let c = a.add(b);
assert_eq!(c.x, 4);
assert_eq!(c.y, 6);
}
pub fn void run_tests() {
test_inherent_impl();
test_trait_impl_block();
test_multiple_impls();
}