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
Auto Trait Implementationsยง
impl<'tp, T> Freeze for CsvByteDiffLocalBuilder<'tp, T>
impl<'tp, T> !RefUnwindSafe for CsvByteDiffLocalBuilder<'tp, T>
impl<'tp, T> Send for CsvByteDiffLocalBuilder<'tp, T>where
T: Send,
impl<'tp, T> Sync for CsvByteDiffLocalBuilder<'tp, T>where
T: Sync,
impl<'tp, T> Unpin for CsvByteDiffLocalBuilder<'tp, T>where
T: Unpin,
impl<'tp, T> !UnwindSafe for CsvByteDiffLocalBuilder<'tp, T>
Blanket Implementationsยง
Sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Sourceยงimpl<T> IntoEither for T
impl<T> IntoEither for T
Sourceยงfn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSourceยงfn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more