[−][src]Function ddelta::generate_chunked
pub fn generate_chunked(
old_f: &mut impl Read,
new_f: &mut impl Read,
patch_f: &mut impl Write,
chunk_sizes: impl Into<Option<usize>>,
progress: impl FnMut(State)
) -> Result<()>
Generate a ddelta patch. This does not have a limit of 2^31-1 bytes, unlike generate
.
However, the output is not compatible with the original ddelta tool or bsdiff. Attempting to use
the original program or apply
with the output created by this function will
create an unspecified output, that is only valid up to chunk_sizes
or 2^31-1 bytes, whichever
is smaller. apply_chunked
must be used to use the patch file.
progress
is a function that will be called periodically with progress updates. The algorithm
will never consume more than chunk_sizes * 6, so this parameter can be used to implement a RAM
limit. Pass None
as a parameter to set no limit. Note that this uses anything implementing
Into<Option<usize>>
, including a usize
itself, so you can just pass a number to that
parameter. A smaller chunk_sizes
value uses less RAM, but creates less optimal patches.