title: What is the "standard" way to concatenate strings?
body: <p>While I understand basically what <code>str</code> and <code>std::string::String</code> are and how they relate to each other, I find it a bit cumbersome to compose strings out of various parts without spending too much time and thought on it. So as usual I suspect I did not see the proper way to do it yet, which makes it intuitive and a breeze.</p>
  
  <pre><code>let mut s = std::string::String::with_capacity(200);
  let precTimeToJSON = | pt : prectime::PrecTime, isLast : bool | {
      s.push_str(
          "{ \"sec\": " 
         + &amp;(pt.sec.to_string()) 
         + " \"usec\": " 
         + &amp;(pt.usec.to_string()) 
         + if isLast {"}"} else {"},"})
      };    
  </code></pre>
  
  <p>The code above is honored by the compiler with error messages like:</p>
  
  <blockquote>
    <p>src\main.rs:25:20: 25:33 error: binary operation <code>+</code> cannot be applied to type <code>&amp;'static str</code> [E0369]</p>
  </blockquote>
  
  <p>And even after half an hours worth of fiddling and randomly adding <code>&amp;</code>, I could not make this compilable. So, here my questions:</p>
  
  <ul>
  <li>What do I have to write to achieve the obvious?</li>
  <li>What is the "standard" way to do this in Rust?</li>
  </ul>