pub struct Csv<R> { /* private fields */ }
Implementations§
source§impl<R: Read + Seek + Send> Csv<R>
impl<R: Read + Seek + Send> Csv<R>
sourcepub fn with_reader_seek<RSeek: CsvReadSeek<R>>(reader: RSeek) -> Self
pub fn with_reader_seek<RSeek: CsvReadSeek<R>>(reader: RSeek) -> Self
Create a new Csv
with something that can read Csv data and implements CsvReadSeek
.
Example: use Csv
together with CsvByteDiffLocal
to compare CSV data
use csv_diff::{csv_diff::CsvByteDiffLocal, csv::Csv};
let csv_data_left = "id,name,kind\n\
1,lemon,fruit\n\
2,strawberry,fruit";
let csv_data_right = "id,name,kind\n\
1,lemon,fruit\n\
2,strawberry,fruit";
let csv_byte_diff = CsvByteDiffLocal::new()?;
let mut diff_byte_records = csv_byte_diff.diff(
// bytes are not `Seek`able by default, but trait `CsvReadSeek` makes them seekable
Csv::with_reader_seek(csv_data_left.as_bytes()),
Csv::with_reader_seek(csv_data_right.as_bytes()),
)?;
let num_of_rows_different = diff_byte_records.as_slice().len();
assert_eq!(
num_of_rows_different,
0
);
Ok(())