summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam White <theodanwow@gmail.com>2022-02-25 16:41:36 +0000
committermokou <mokou@fastmail.com>2022-07-15 14:14:15 +0200
commit63b0c7e399ad11246bf5bf3acac4517f67c890da (patch)
tree6a2016ef4a46493ae0bff897b493eb6b7d926f22
parent599d634ee2277d1071dd803346993c24ab13462b (diff)
feat: add traits5.rs exercise
-rw-r--r--exercises/traits/traits5.rs31
-rw-r--r--info.toml11
2 files changed, 42 insertions, 0 deletions
diff --git a/exercises/traits/traits5.rs b/exercises/traits/traits5.rs
new file mode 100644
index 0000000..ed2afb1
--- /dev/null
+++ b/exercises/traits/traits5.rs
@@ -0,0 +1,31 @@
+// traits5.rs
+//
+// Your task is to replace the '??' sections so the code compiles.
+// Don't change any line other than 27.
+
+// I AM NOT DONE
+
+pub trait SomeTrait {
+ fn some_function(&self) -> bool {
+ true
+ }
+}
+
+pub trait OtherTrait {
+ fn other_function(&self) -> bool {
+ true
+ }
+}
+
+struct SomeStruct {
+ name: String,
+}
+
+impl SomeTrait for SomeStruct {}
+impl OtherTrait for SomeStruct {}
+
+fn some_func(item: ??) -> bool {
+ item.some_function() && item.other_function()
+}
+
+fn main() {}
diff --git a/info.toml b/info.toml
index 2ad9a0e..5b7b9b4 100644
--- a/info.toml
+++ b/info.toml
@@ -727,6 +727,17 @@ Instead of using concrete types as parameters you can use traits. Try replacing
See the documentation at: https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
"""
+[[exercises]]
+name = "traits5"
+path = "exercises/traits/traits5.rs"
+mode = "compile"
+hint = """
+To ensure a paramter implements multiple traits use the '+ syntax'. Try replacing the
+'??' with 'impl <> + <>'.
+
+See the documentation at: https://doc.rust-lang.org/book/ch10-02-traits.html#specifying-multiple-trait-bounds-with-the--syntax
+"""
+
# QUIZ 3
[[exercises]]