# File lib/faster_csv.rb, line 1392
  def <<(row)
    # Handle FasterCSV::Row objects and Hashes
    row = case row
      when self.class::Row then row.fields
      when Hash            then @headers.map { |header| row[header] }
      else                      row
    end

    @headers =  row if header_row?
    @lineno  += 1

    @io << row.map(&@quote).join(@col_sep) + @row_sep  # quote and separate
    
    self  # for chaining
  end