use orx_concurrent_iter::ConcurrentIter;
pub trait ThreadExecutor: Sized {
type SharedState;
fn next_chunk_size<I>(&self, shared_state: &Self::SharedState, iter: &I) -> usize
where
I: ConcurrentIter;
fn begin_chunk(&mut self, chunk_size: usize);
fn complete_chunk(&mut self, shared_state: &Self::SharedState, chunk_size: usize);
fn complete_task(&mut self, shared_state: &Self::SharedState);
}