code: func NewStream(r io.Reader, inputLimit uint64) *Stream {
  	s := new(Stream)
  	s.Reset(r, inputLimit)
  	return s
  }
docs: // NewStream creates a new decoding stream reading from r.
  //
  // If r implements the ByteReader interface, Stream will
  // not introduce any buffering.
  //
  // For non-toplevel values, Stream returns ErrElemTooLarge
  // for values that do not fit into the enclosing list.
  //
  // Stream supports an optional input limit. If a limit is set, the
  // size of any toplevel value will be checked against the remaining
  // input length. Stream operations that encounter a value exceeding
  // the remaining input length will return ErrValueTooLarge. The limit
  // can be set by passing a non-zero value for inputLimit.
  //
  // If r is a bytes.Reader or strings.Reader, the input limit is set to
  // the length of r's underlying data unless an explicit limit is
  // provided.