code: public CsvReader includeFields(long mask) {
  		if (mask == 0) {
  			throw new IllegalArgumentException("The description of fields to parse excluded all fields. At least one fields must be included.");
  		}
  
  		ArrayList<Boolean> fields = new ArrayList<Boolean>();
  
  		while (mask != 0) {
  			fields.add((mask & 0x1L) != 0);
  			mask >>>= 1;
  		}
  
  		boolean[] fieldsArray = new boolean[fields.size()];
  		for (int i = 0; i < fieldsArray.length; i++) {
  			fieldsArray[i] = fields.get(i);
  		}
  
  		return includeFields(fieldsArray);
  	}
docs: Configures which fields of the CSV file should be included and which should be skipped. The
  bits in the value (read from least significant to most significant) define whether the field at
  the corresponding position in the CSV schema should be included.
  parser will look at the first {@code n} fields, where {@code n} is the position of the most significant
  non-zero bit.
  The parser will skip over all fields where the character at the corresponding bit is zero, and
  include the fields where the corresponding bit is one.
  
  <p>Examples:
  <ul>
  <li>A mask of {@code 0x7} would include the first three fields.</li>
  <li>A mask of {@code 0x26} (binary {@code 100110} would skip the first fields, include fields
  two and three, skip fields four and five, and include field six.</li>
  </ul>
  
  @param mask The bit mask defining which fields to include and which to skip.
  @return The CSV reader instance itself, to allow for fluent function chaining.