code: func (d *ulReqDecoder) nextLine() bool {
  	d.nLine++
  
  	if !d.s.Scan() {
  		if d.err = d.s.Err(); d.err != nil {
  			return false
  		}
  
  		d.error("EOF")
  		return false
  	}
  
  	d.line = d.s.Bytes()
  	d.line = bytes.TrimSuffix(d.line, eol)
  
  	return true
  }
docs: // Reads a new pkt-line from the scanner, makes its payload available as
  // p.line and increments p.nLine.  A successful invocation returns true,
  // otherwise, false is returned and the sticky error is filled out
  // accordingly.  Trims eols at the end of the payloads.