summaryrefslogtreecommitdiff
path: root/exercises/15_traits
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-06-27 12:29:25 +0200
committermo8it <mo8it@proton.me>2024-06-27 12:29:25 +0200
commit45cfe86fb05a21dd52d9d72d07e881037803395d (patch)
tree3208a3e8ca8b308eb5e4d46a60646149c9fd9f77 /exercises/15_traits
parentdb4d649e557f34641f2c7cc197dff2fb29637a7f (diff)
traits5 solution
Diffstat (limited to 'exercises/15_traits')
-rw-r--r--exercises/15_traits/traits5.rs28
1 files changed, 17 insertions, 11 deletions
diff --git a/exercises/15_traits/traits5.rs b/exercises/15_traits/traits5.rs
index 3e62283..5b356ac 100644
--- a/exercises/15_traits/traits5.rs
+++ b/exercises/15_traits/traits5.rs
@@ -1,7 +1,3 @@
-// Your task is to replace the '??' sections so the code compiles.
-//
-// Don't change any line other than the marked one.
-
trait SomeTrait {
fn some_function(&self) -> bool {
true
@@ -14,20 +10,30 @@ trait OtherTrait {
}
}
-struct SomeStruct {}
-struct OtherStruct {}
-
+struct SomeStruct;
impl SomeTrait for SomeStruct {}
impl OtherTrait for SomeStruct {}
+
+struct OtherStruct;
impl SomeTrait for OtherStruct {}
impl OtherTrait for OtherStruct {}
-// YOU MAY ONLY CHANGE THE NEXT LINE
-fn some_func(item: ??) -> bool {
+// TODO: Fix the compiler error by only changing the signature of this function.
+fn some_func(item: ???) -> bool {
item.some_function() && item.other_function()
}
fn main() {
- some_func(SomeStruct {});
- some_func(OtherStruct {});
+ // You can optionally experiment here.
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_some_func() {
+ assert!(some_func(SomeStruct));
+ assert!(some_func(OtherStruct));
+ }
}