title: Return a str - Rust Lifetimes
body: <p>I am running into some trouble when trying to return a string. I have been trying various ways of defining my variables and return value to try and make it so I can return the string primitive, but I get an array of lifetime related error messages.</p>
  
  <pre><code>pub fn raindrops(int: u64) -&gt; &amp;'a str {
      let mut out = String::new();
  
      if int % 3 == 0 {
          out.push_str("Pling");
      }
      if int % 5 == 0 {
          out.push_str("Plang");
      }
      if int % 7 == 0 {
          out.push_str("Plong");
      }
      if out.is_empty() {
          out.push_str(&amp;format!("{}", int));
      }
  
      out.shrink_to_fit();
  
      return out.as_str();
  }
  </code></pre>
  
  <p>Error:</p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0261]: use of undeclared lifetime name `'a`
   --&gt; src/lib.rs:1:32
    |
  1 | pub fn raindrops(int: u64) -&gt; &amp;'a str {
    |                                ^^ undeclared lifetime
  
  error: aborting due to previous error
  
  error: Could not compile `raindrops`.
  Build failed, waiting for other jobs to finish...
  error[E0261]: use of undeclared lifetime name `'a`
   --&gt; src/lib.rs:1:32
    |
  1 | pub fn raindrops(int: u64) -&gt; &amp;'a str {
    |                                ^^ undeclared lifetime
  </code></pre>