title: Is it possible to unborrow a mutable reference in rust?
body: <p>Here is an example</p>
  
  <pre><code>#[derive(Debug)]
  struct Point {
      x: Vec&lt;i32&gt;,
      y: i32,
  }
  
  let mut p = Point { x: vec![1], y: 7 };
  
  // borrow out mutable reference p to a and b
  let Point { x: a, y: b } = &amp;mut p;
  
  // mutate a
  a.push(2); 
  // how do I get p back?
  println!("{:?}", p);
  </code></pre>
  
  <p>Is there a way to unborrow the reference without creating a new block or abstract into function?</p>