Struct csv_diff::csv_diff::CsvByteDiffLocalBuilder
source ยท pub struct CsvByteDiffLocalBuilder<'tp, T: CsvHashTaskSpawnerLocal> { /* private fields */ }Expand description
Create a CsvByteDiffLocal with configuration options.
Example: create a CsvByteDiffLocal, where column 1 and column 3 are treated as a compound primary key.
use csv_diff::{csv_diff::{CsvByteDiffLocal, CsvByteDiffLocalBuilder}, csv::Csv};
use csv_diff::diff_row::{ByteRecordLineInfo, DiffByteRecord};
use std::collections::HashSet;
use std::iter::FromIterator;
// some csv data with a header, where the first column and third column represent a compound key
let csv_data_left = "\
id,name,commit_sha\n\
1,lemon,efae52\n\
2,strawberry,a33411"; // this csv line is seen as "Deleted" and not "Modified"
// because "id" and "commit_sha" are different and both columns
// _together_ represent the primary key
let csv_data_right = "\
id,name,commit_sha\n\
1,lemon,efae52\n\
2,strawberry,ddef23"; // this csv line is seen as "Added" and not "Modified",
// because "id" and "commit_sha" are different and both columns
// _together_ represent the primary key
let csv_byte_diff = CsvByteDiffLocalBuilder::new()
.primary_key_columns(vec![0usize, 2])
.build()?;
let mut diff_byte_records = csv_byte_diff.diff(
Csv::with_reader_seek(csv_data_left.as_bytes()),
Csv::with_reader_seek(csv_data_right.as_bytes()),
)?;
diff_byte_records.sort_by_line();
let diff_byte_rows = diff_byte_records.as_slice();
assert_eq!(
diff_byte_rows,
&[
DiffByteRecord::Delete(ByteRecordLineInfo::new(
csv::ByteRecord::from(vec!["2", "strawberry", "a33411"]),
3
),),
DiffByteRecord::Add(ByteRecordLineInfo::new(
csv::ByteRecord::from(vec!["2", "strawberry", "ddef23"]),
3
),)
]
);
Ok(())Implementationsยง
sourceยงimpl<'tp, T> CsvByteDiffLocalBuilder<'tp, T>where
T: CsvHashTaskSpawnerLocal,
impl<'tp, T> CsvByteDiffLocalBuilder<'tp, T>where T: CsvHashTaskSpawnerLocal,
pub fn primary_key_columns( self, columns: impl IntoIterator<Item = usize> ) -> Self
sourceยงimpl<'tp> CsvByteDiffLocalBuilder<'tp, CsvHashTaskSpawnerLocalRayon<'tp>>
impl<'tp> CsvByteDiffLocalBuilder<'tp, CsvHashTaskSpawnerLocalRayon<'tp>>
pub fn new() -> Self
pub fn rayon_thread_pool(self, thread_pool: &'tp ThreadPool) -> Self
pub fn build( self ) -> Result<CsvByteDiffLocal<CsvHashTaskSpawnerLocalRayon<'tp>>, CsvByteDiffBuilderError>
Trait Implementationsยง
sourceยงimpl<'tp, T: Debug + CsvHashTaskSpawnerLocal> Debug for CsvByteDiffLocalBuilder<'tp, T>
impl<'tp, T: Debug + CsvHashTaskSpawnerLocal> Debug for CsvByteDiffLocalBuilder<'tp, T>
sourceยงimpl<'tp, T: Default + CsvHashTaskSpawnerLocal> Default for CsvByteDiffLocalBuilder<'tp, T>
impl<'tp, T: Default + CsvHashTaskSpawnerLocal> Default for CsvByteDiffLocalBuilder<'tp, T>
sourceยงfn default() -> CsvByteDiffLocalBuilder<'tp, T>
fn default() -> CsvByteDiffLocalBuilder<'tp, T>
Returns the โdefault valueโ for a type. Read more