title: public OptionSet with private constructor
body: <p>I have a sample code:</p>
  
  <pre><code>public struct MyOptions: OptionSet {
      public let rawValue: Int
  
      public init(rawValue: Int) {
          self.rawValue = rawValue
      }
  
      public static let one = MyOptions(rawValue: 1 &lt;&lt; 0)
      public static let two = MyOptions(rawValue: 1 &lt;&lt; 1)
  }
  </code></pre>
  
  <p>In other module I can do:</p>
  
  <pre><code>print(MyOptions.one)
  print(MyOptions(rawValue: 10))
  </code></pre>
  
  <p>How can I do public struct with private constructor and public static properties(like a <em>one</em>, <em>two</em>) to limit manual creation?</p>