title: How are you able to create partially initialised structs?
body: <p>When creating a struct in Rust it seems like it's difficult to create one without having all of the fields set. For example with the following code</p>
  
  <pre><code>struct Connection {
      url: String,
      stream: TcpStream
  }
  </code></pre>
  
  <p>You aren't able to set <code>url</code> without giving <code>stream</code> as well.</p>
  
  <pre><code>// Compilation error asking for 'stream'
  let m = Connection { url: "www.google.com".to_string() }; 
  </code></pre>
  
  <p>How are you able to create these references that might be <code>Option&lt;None&gt;</code> until a later time?</p>
  
  <p>The best I have found is using the <code>Default</code> trait, but I'd rather not have to create the <code>TcpStream</code> until a later time than when the struct is initialised. Am I able to do this with something like a <code>Box</code>?</p>