title: Move ownership of a member from one struct to another?
body: <p>I have 2 structs:</p>
  
  <pre><code>struct MyVector {
      storage: Vec&lt;u32&gt;,
  }
  
  struct MyVectorBuilder {
      storage: Vec&lt;u32&gt;,
  }
  
  impl MyVectorBuilder {
      fn new() -&gt; MyVectorBuilder {
          MyVectorBuilder { storage: Vec::new() }
      }
  
      fn build_my_vector(&amp;mut self) -&gt; MyVector {
          // Doesn't compile: ^^^^ cannot move out of borrowed content
          MyVector { storage: self.storage }
      }
  }
  </code></pre>
  
  <p>Is there a way to tell the compiler that <code>MyVectorBuilder</code> will not be used following a call to <code>build_my_vector()</code> so it will let me move the <code>storage</code> to <code>MyVector</code>?</p>