title: Multiple return types in rust
body: <p>I have a library function <code>f1</code> in <code>rust</code> that returns a string and want to update it to optionally return a vector. </p>
  
  <pre><code>fn f1() -&gt; String {
     "abc"
  }
  
  fn f2() -&gt; (String, Vec&lt;usize&gt;) {
     "abc", vec![(0, 1, 2)]
  }
  
  fn f3(flag: bool) -&gt; ? {
      if (flag)
          "abc", vec![(0, 1, 2)]
      else
          "abc"
  }
  </code></pre>
  
  <p>Is it possible to have multiple return path like <code>f3</code>?</p>