Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait OneAdder {
- fn add_one(&mut self);
- }
- trait AnyAdder {
- fn add_any(&mut self, extra: u32);
- }
- impl<T:OneAdder> AnyAdder for T {
- fn add_any(&mut self, value: u32) {
- for _ in 0..value {
- self.add_one()
- }
- }
- }
- // ---------
- #[derive(Debug)]
- struct A {
- value: i32,
- }
- // Let's just implement OneAdder and get AnyAdder for free.
- impl OneAdder for A {
- fn add_one(&mut self) {
- self.value += 1;
- }
- }
- fn main() {
- let mut a = A { value: 5 };
- a.add_any(10);
- println!("{:?}", a)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement