code: func (o *FilterProcessScanner) Scan() bool {
  	o.req, o.err = nil, nil
  
  	req, err := o.readRequest()
  	if err != nil {
  		o.err = err
  		return false
  	}
  
  	o.req = req
  	return true
  }
docs: // Scan scans for the next request, or error and returns whether or not the scan
  // was successful, indicating the presence of a valid request. If the Scan
  // failed, there was either an error reading the next request (and the results
  // of calling `Err()` should be inspected), or the pipe was closed and no more
  // requests are present.
  //
  // Closing the pipe is Git's way to communicate that no more files will be
  // filtered. Git expects that the LFS process exits after this event.