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
+62
View File
@@ -0,0 +1,62 @@
pub module enum_test;
enum OptionInt {
None,
Some(i32),
}
pub fn void test_enum_named() {
let x = OptionInt::None;
match x {
OptionInt::None => { assert_eq!(1, 1); }
OptionInt::Some(_) => { assert_eq!(0, 1); }
}
}
pub fn void test_enum_tuple() {
let x = OptionInt::Some(42);
match x {
OptionInt::None => { assert_eq!(0, 1); }
OptionInt::Some(v) => { assert_eq!(v, 42); }
}
}
enum Shape {
Circle { radius i32 },
Rect { w i32, h i32 },
}
pub fn void test_enum_struct() {
let c = Shape::Circle { radius: 5 };
match c {
Shape::Circle { radius } => { assert_eq!(radius, 5); }
Shape::Rect { .. } => { assert_eq!(0, 1); }
}
let r = Shape::Rect { w: 3, h: 4 };
match r {
Shape::Circle { .. } => { assert_eq!(0, 1); }
Shape::Rect { w, h } => { assert_eq!(w * h, 12); }
}
}
enum Color {
Red,
Green,
Blue,
}
pub fn void test_enum_eq() {
let c = Color::Red;
match c {
Color::Red => { assert_eq!(1, 1); }
_ => { assert_eq!(0, 1); }
}
}
pub fn void run_tests() {
test_enum_named();
test_enum_tuple();
test_enum_struct();
test_enum_eq();
}