code: public static <T, K extends Enum<K>> CSVParserBuilder<T, K> aParser(Function<CSVRecordWithHeader<K>, T> mapper, Class<K> fields) {
          CSVParserBuilder<T, K> builder = new CSVParserBuilder<T, K>();
          builder.recordWithHeaderMapper = mapper;
          builder.subsetView = FieldSubsetView.forSourceSuppliedHeader(fields);
          return builder;
      }
docs: Create new header-aware parser using supplied mapping function.
  
  Mapping function can not store reference to {@link CSVRecordWithHeader} object,
  it needs to be a pure function that create new instance of T.
  
  CSVRecordWithHeader could be mutated by the parser when next record is processed.
  
  @param mapper - mapping function from CSVRecordWithHeader to T
  @param fields - enumeration specifying fields that should be parsed
  @param <T> - type of object that each record of the CSV data will be mapped to
  @param <K> - type of enumeration that is used to specify fields to be parsed
  
  @return this parser builder