diff options
| author | mo8it <mo8it@proton.me> | 2024-06-27 03:04:57 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-06-27 03:04:57 +0200 |
| commit | 789223cc9e247eb9da90698b1c3011c26cdc863c (patch) | |
| tree | e1cf4728fa43c974729d5079aaa6d3c735c388b8 /solutions | |
| parent | de3f846a53055bbca5ec9dd6d536a31c82d39648 (diff) | |
traits1 solution
Diffstat (limited to 'solutions')
| -rw-r--r-- | solutions/15_traits/traits1.rs | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/solutions/15_traits/traits1.rs b/solutions/15_traits/traits1.rs index 4e18198..790873f 100644 --- a/solutions/15_traits/traits1.rs +++ b/solutions/15_traits/traits1.rs @@ -1 +1,32 @@ -// Solutions will be available before the stable release. Thank you for testing the beta version 🥰 +// The trait `AppendBar` has only one function which appends "Bar" to any object +// implementing this trait. +trait AppendBar { + fn append_bar(self) -> Self; +} + +impl AppendBar for String { + fn append_bar(self) -> Self { + self + "Bar" + } +} + +fn main() { + let s = String::from("Foo"); + let s = s.append_bar(); + println!("s: {s}"); +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn is_foo_bar() { + assert_eq!(String::from("Foo").append_bar(), "FooBar"); + } + + #[test] + fn is_bar_bar() { + assert_eq!(String::from("").append_bar().append_bar(), "BarBar"); + } +} |
