1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2025-12-01 22:51:45 +02:00

traits5 solution

This commit is contained in:
mo8it
2024-06-27 12:29:25 +02:00
parent db4d649e55
commit 45cfe86fb0
3 changed files with 59 additions and 15 deletions

View File

@@ -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));
}
}