fork download
  1. use std::io::stdin;
  2.  
  3. struct A {
  4. a: u32
  5. }
  6.  
  7. struct B {
  8. a: A,
  9. b: u32
  10. }
  11.  
  12. struct C {
  13. b: B,
  14. c: u32
  15. }
  16.  
  17. trait Print {
  18. fn print(&self);
  19. }
  20.  
  21. impl Print for A {
  22. fn print(&self) {
  23. println!("{}",self.a)
  24. }
  25. }
  26.  
  27. impl Print for B {
  28. fn print(&self) {
  29. self.a.print();
  30. println!("{}",self.b)
  31. }
  32. }
  33.  
  34. impl Print for C {
  35. fn print(&self) {
  36. self.b.print();
  37. println!("{}",self.c)
  38. }
  39. }
  40.  
  41. fn main() {
  42. let C = C{b:B{a:A{a:1},b:2},c:3};
  43. C.print();
  44. }
  45.  
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
1
2
3