pub trait CsvHashTaskSpawner {
fn spawn_hashing_tasks_and_send_result<R: Read + Send + 'static>(
self,
csv_hash_task_sender_left: CsvHashTaskSenderWithRecycleReceiver<R>,
csv_hash_task_sender_right: CsvHashTaskSenderWithRecycleReceiver<R>,
csv_hash_receiver_comparer: CsvHashReceiverStreamComparer,
primary_key_columns: HashSet<usize>
) -> (Self, Receiver<DiffByteRecordsIterator>)
where
Self: Sized;
fn parse_hash_and_send_for_compare<R, P>(
csv_hash_task_sender: CsvHashTaskSenderWithRecycleReceiver<R>,
primary_key_columns: HashSet<usize>
)
where
R: Read + Send,
P: CsvParseResult<CsvLeftRightParseResult<CsvByteRecordWithHash>, CsvByteRecordWithHash>,
{ ... }
}