From 63b0c7e399ad11246bf5bf3acac4517f67c890da Mon Sep 17 00:00:00 2001 From: Sam White Date: Fri, 25 Feb 2022 16:41:36 +0000 Subject: [PATCH] feat: add traits5.rs exercise --- exercises/traits/traits5.rs | 31 +++++++++++++++++++++++++++++++ info.toml | 11 +++++++++++ 2 files changed, 42 insertions(+) create mode 100644 exercises/traits/traits5.rs diff --git a/exercises/traits/traits5.rs b/exercises/traits/traits5.rs new file mode 100644 index 00000000..ed2afb1e --- /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 2ad9a0eb..5b7b9b43 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]]