title: raw value for enum case must be a literal error with string
body: <p>I'd like to use the same struct to fetch from different APIs, for that I need to be able to change the <code>enum</code> string depending on what I need to fetch as follows:</p>
  
  <pre><code>static var menuSelection: String = ""
  
  if ... {
      menuSelection = "1"
  } else if ... {
      menuSelection = "2"
  } else {
      menuSelection = "3"
  }
  
  struct Order : Decodable {
      private enum CodingKeys : String, CodingKey { case raw = "RAW" }
      let raw : MenuRAW
  }
  
  struct MenuRAW : Decodable {
      private enum CodingKeys : String, CodingKey { case menu = "\(menuSelection)" } // &lt;---- raw value for enum case must be a literal
      let menu : MenuReference
  }
  
  struct MenuReference : Decodable {
      private enum CodingKeys : String, CodingKey {
          case usd = "USD"
          case eur = "EUR"
          case gbp = "GBP"
          case cny = "CNY"
          case rub = "RUB"
      }
      let usd : MenuUSD?
      let eur : MenuEUR?
      let gbp : MenuGBP?
      let cny : MenuCNY?
      let rub : MenuRUB?
  }
  </code></pre>
  
  <p>But I get a <code>raw value for enum case must be a literal</code> as <code>"\(menuSelection)"</code>doesn't seem to be a literal. What is my solution here?</p>