title: Missing lifetime specifier in returned HashMap<&i32, SimpleCallback>
body: <p>Consider the following:</p>
  <pre><code>use std::collections::HashMap;
  use std::vec::Vec;
  use crate::core::process_call_backs::SimpleCallback;
  
  pub fn make_adventure_list(adventure_list: Vec&lt;SimpleCallback&gt;) -&gt; HashMap&lt;&amp;i32, SimpleCallback&gt; {
      let mut adventures = HashMap::new();
  
      let mut count = 1;
  
      for adventure in adventure_list {
          adventures.insert(count, adventure);
  
          count = count + 1;
      }
  
      adventures;
  }
  </code></pre>
  <p>I get the error:</p>
  <pre><code>error[E0106]: missing lifetime specifier
   --&gt; core/src/core/create_adventures.rs:5:76
    |
  5 | pub fn make_adventure_list(adventure_list: Vec&lt;SimpleCallback&gt;) -&gt; HashMap&lt;&amp;i32, SimpleCallback&gt; {
    |                                                                            ^ help: consider giving it an explicit bounded or 'static lifetime: `&amp;'static`
    |
    = help: this function's return type contains a borrowed value with an elided lifetime, but the lifetime cannot be derived from the arguments
  </code></pre>
  <p>I understand the meaning of this error, but not I'm sure how to implement the fix. Do I need to make <code>adventure_list</code> mutable?</p>