title: Is cloning a custom struct that can't implement Copy every time you want to use it the best way to do it?
body: <p>I have a struct that has a <code>Vec</code> field and cannot implement <code>Copy</code>:</p>
  
  <pre><code>#[derive(Clone, Debug)]
  struct MyStruct {
      field: Vec&lt;i32&gt;,
  }
  
  impl MyStruct {
      fn new () -&gt; MyStruct {
          MyStruct {
              field: vec![1, 2],
          }
      }
  
      fn overwrite(&amp;mut self, strt: MyStruct) {
          self.field = strt.field;
      }
  }
  </code></pre>
  
  <p>If I want to use it multiple times later in my code, I have to <code>clone()</code> it every time:</p>
  
  <pre><code>fn main() {
      let mut s = MyStruct::new();
      let s2 = MyStruct::new();
  
      s.overwrite(s2.clone());
  
      println!("{:?}", s2);
  }
  </code></pre>
  
  <p>This works fine, but is this the best way to accomplish this task? Are there any other, more idiomatic ways?</p>