Guest User

Untitled

a guest
Jun 23rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. #![allow(unused_mut)]
  2. #![allow(dead_code)]
  3.  
  4. struct Bar(isize);
  5. impl Bar {
  6. fn new(i: isize) -> Bar { Bar(i) }
  7. }
  8.  
  9. #[derive(Copy, Clone)]
  10. struct FooCore {
  11. fc: i32,
  12. }
  13.  
  14. impl FooCore {
  15. fn new(fc: i32) -> FooCore {
  16. FooCore {
  17. fc: fc
  18. }
  19. }
  20. }
  21.  
  22. struct Foo<'a> {
  23. core: &'a mut FooCore,
  24. bar: &'a mut Bar,
  25. }
  26.  
  27. impl<'a> Foo<'a> {
  28. fn new(core: &'a mut FooCore, bar: &'a mut Bar) -> Foo<'a> {
  29. Foo {
  30. core: core,
  31. bar: bar
  32. }
  33. }
  34. }
  35.  
  36. fn main() {
  37. // Set up first state
  38. let mut bar = Bar::new(42);
  39. let mut core = FooCore::new(20);
  40. let mut foo = Foo::new(&mut core, &mut bar);
  41.  
  42. println!("{}", foo.bar.0);
  43.  
  44. // Set up second state
  45. core.fc = 30;
  46. let mut bar2 = Bar::new(10);
  47. let mut foo = Foo::new(&mut core, &mut bar2);
  48.  
  49. println!("{}", foo.bar.0);
  50. }
Add Comment
Please, Sign In to add comment