pub struct CSVMapReader<T>{ /* private fields */ }
Expand description
Returns each row as a Key => Value Mapping, rather than a simple list of values.
CSVMapReader has more validation than CSVReader
, as it REQUIRES that each line in the
csv file have the same number of elements as the header.
Implementations§
Source§impl<T: Read + Sized> CSVMapReader<T>
impl<T: Read + Sized> CSVMapReader<T>
Sourcepub fn new(read: T) -> Result<CSVMapReader<T>, CSVError>
pub fn new(read: T) -> Result<CSVMapReader<T>, CSVError>
Creates a new CSVMapReader
Will return [Result::Ok(CSVMapReader)
] if it can read the CSV’s header.
Will return [Result::Err(CSVError)
] if any I/O Error, or no header.
Sourcepub fn dialect(read: T, dialect: Dialect) -> Result<Self, CSVError>
pub fn dialect(read: T, dialect: Dialect) -> Result<Self, CSVError>
Creates a new CSVMapReader
using the specified dialect
Will return [Result::Ok(CSVMapReader)
] if it can read the CSV’s header.
Will return [Result::Err(CSVError)
] if any I/O Error, or no header.
Sourcepub fn next_row(&mut self) -> Result<Option<Row>, CSVError>
pub fn next_row(&mut self) -> Result<Option<Row>, CSVError>
Maybe return a single row from the CSV file.
Will return [std::result::Result::Ok(None)
] upon EOF
Will return [std::result::Result::Err(CSVError)
] upon underlying I/O error, or if the
particular row doesn’t have enough elements to match up against the header.