summaryrefslogtreecommitdiff
path: root/exercises/15_traits/traits5.rs
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/15_traits/traits5.rs')
-rw-r--r--exercises/15_traits/traits5.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/exercises/15_traits/traits5.rs b/exercises/15_traits/traits5.rs
new file mode 100644
index 0000000..df18380
--- /dev/null
+++ b/exercises/15_traits/traits5.rs
@@ -0,0 +1,40 @@
+// traits5.rs
+//
+// Your task is to replace the '??' sections so the code compiles.
+//
+// Don't change any line other than the marked one.
+//
+// Execute `rustlings hint traits5` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+pub trait SomeTrait {
+ fn some_function(&self) -> bool {
+ true
+ }
+}
+
+pub trait OtherTrait {
+ fn other_function(&self) -> bool {
+ true
+ }
+}
+
+struct SomeStruct {}
+struct OtherStruct {}
+
+impl SomeTrait for SomeStruct {}
+impl OtherTrait for SomeStruct {}
+impl SomeTrait for OtherStruct {}
+impl OtherTrait for OtherStruct {}
+
+// YOU MAY ONLY CHANGE THE NEXT LINE
+fn some_func(item: ??) -> bool {
+ item.some_function() && item.other_function()
+}
+
+fn main() {
+ some_func(SomeStruct {});
+ some_func(OtherStruct {});
+}