Struct exr::block::writer::OnProgressChunkWriter
source · pub struct OnProgressChunkWriter<'w, W, F> {
chunk_writer: &'w mut W,
written_chunks: usize,
on_progress: F,
}
Expand description
A new writer that triggers a callback for each block written to the inner writer.
Fields§
§chunk_writer: &'w mut W
§written_chunks: usize
§on_progress: F
Trait Implementations§
source§impl<'w, W, F> ChunksWriter for OnProgressChunkWriter<'w, W, F>
impl<'w, W, F> ChunksWriter for OnProgressChunkWriter<'w, W, F>
source§fn total_chunks_count(&self) -> usize
fn total_chunks_count(&self) -> usize
The total number of chunks that the complete file will contain.
source§fn write_chunk(
&mut self,
index_in_header_increasing_y: usize,
chunk: Chunk,
) -> UnitResult
fn write_chunk( &mut self, index_in_header_increasing_y: usize, chunk: Chunk, ) -> UnitResult
Any more calls will result in an error and have no effect.
If writing results in an error, the file and the writer
may remain in an invalid state and should not be used further.
Errors when the chunk at this index was already written.
source§fn on_progress<F>(
&mut self,
on_progress: F,
) -> OnProgressChunkWriter<'_, Self, F>
fn on_progress<F>( &mut self, on_progress: F, ) -> OnProgressChunkWriter<'_, Self, F>
Obtain a new writer that calls the specified closure for each block that is written to this writer.
source§fn sequential_blocks_compressor<'w>(
&'w mut self,
meta: &'w MetaData,
) -> SequentialBlocksCompressor<'w, Self>
fn sequential_blocks_compressor<'w>( &'w mut self, meta: &'w MetaData, ) -> SequentialBlocksCompressor<'w, Self>
Obtain a new writer that can compress blocks to chunks, which are then passed to this writer.
source§fn parallel_blocks_compressor<'w>(
&'w mut self,
meta: &'w MetaData,
) -> Option<ParallelBlocksCompressor<'w, Self>>
fn parallel_blocks_compressor<'w>( &'w mut self, meta: &'w MetaData, ) -> Option<ParallelBlocksCompressor<'w, Self>>
Obtain a new writer that can compress blocks to chunks on multiple threads, which are then passed to this writer.
Returns none if the sequential compressor should be used instead (thread pool creation failure or too large performance overhead).
source§fn compress_all_blocks_sequential(
self,
meta: &MetaData,
blocks: impl Iterator<Item = (usize, UncompressedBlock)>,
) -> UnitResult
fn compress_all_blocks_sequential( self, meta: &MetaData, blocks: impl Iterator<Item = (usize, UncompressedBlock)>, ) -> UnitResult
Compresses all blocks to the file.
The index of the block must be in increasing line order within the header.
Obtain iterator with
MetaData::collect_ordered_blocks(...)
or similar methods.source§fn compress_all_blocks_parallel(
self,
meta: &MetaData,
blocks: impl Iterator<Item = (usize, UncompressedBlock)>,
) -> UnitResult
fn compress_all_blocks_parallel( self, meta: &MetaData, blocks: impl Iterator<Item = (usize, UncompressedBlock)>, ) -> UnitResult
Compresses all blocks to the file.
The index of the block must be in increasing line order within the header.
Obtain iterator with
MetaData::collect_ordered_blocks(...)
or similar methods.
Will fallback to sequential processing where threads are not available, or where it would not speed up the process.Auto Trait Implementations§
impl<'w, W, F> Freeze for OnProgressChunkWriter<'w, W, F>where
F: Freeze,
impl<'w, W, F> RefUnwindSafe for OnProgressChunkWriter<'w, W, F>where
F: RefUnwindSafe,
W: RefUnwindSafe,
impl<'w, W, F> Send for OnProgressChunkWriter<'w, W, F>
impl<'w, W, F> Sync for OnProgressChunkWriter<'w, W, F>
impl<'w, W, F> Unpin for OnProgressChunkWriter<'w, W, F>where
F: Unpin,
impl<'w, W, F> !UnwindSafe for OnProgressChunkWriter<'w, W, F>
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