code: func (r *scannerReader) Seek(offset int64, whence int) (int64, error) {
  	var err error
  
  	if seeker, ok := r.reader.(io.ReadSeeker); !ok {
  		if whence != io.SeekCurrent || offset != 0 {
  			return -1, ErrSeekNotSupported
  		}
  	} else {
  		if whence == io.SeekCurrent && offset == 0 {
  			return r.offset, nil
  		}
  
  		r.offset, err = seeker.Seek(offset, whence)
  		r.rbuf.Reset(r.reader)
  	}
  
  	return r.offset, err
  }
docs: // Seek seeks to a location. If the underlying reader is not an io.ReadSeeker,
  // then only whence=io.SeekCurrent is supported, any other operation fails.