pub trait CsvHashTaskSpawner {
// Required method
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;
// Provided method
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> { ... }
}