code: func newStream(session *Session, id uint32, state streamState) *Stream {
  	s := &Stream{
  		id:           id,
  		session:      session,
  		state:        state,
  		controlHdr:   header(make([]byte, headerSize)),
  		controlErr:   make(chan error, 1),
  		sendHdr:      header(make([]byte, headerSize)),
  		sendErr:      make(chan error, 1),
  		recvWindow:   initialStreamWindow,
  		sendWindow:   initialStreamWindow,
  		recvNotifyCh: make(chan struct{}, 1),
  		sendNotifyCh: make(chan struct{}, 1),
  	}
  	s.readDeadline.Store(time.Time{})
  	s.writeDeadline.Store(time.Time{})
  	return s
  }
docs: // newStream is used to construct a new stream within
  // a given session for an ID