title: How does one get around a "borrowed content" error when reading a value from a reference to a trait's associated type?
body: <p>I have a pointer to an <code>u64</code> value and I can't read it. I am getting this error:</p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0507]: cannot move out of borrowed content
     --&gt; /home/niko/sub/substrate/srml/system/src/lib.rs:533:32
      |
  533 |             let mut aid: T::AccountId = *copy_who;
      |                                         ^^^^^^^^^
      |                                         |
      |                                         cannot move out of borrowed content
      |                                         help: consider removing the `*`: `copy_who`
  </code></pre>
  
  <p>How does one get around "borrowed content" error? What is the point of having a pointer to a variable if you can't read anything that it points to?</p>
  
  <pre><code>impl&lt;T: Trait&gt; Module&lt;T&gt; {
      // getter for AccountId
      pub fn get_account_id(who: &amp;T::AccountId) -&gt; T::AccountId {
          let mut copy_who: &amp;T::AccountId = who;
          {
              let mut aid: T::AccountId = *copy_who;
              return aid;
          }
      }
  }
  </code></pre>
  
  <p><code>AccountId</code> is defined like this:</p>
  
  <pre><code>type AccountId = u64;
  </code></pre>