Struct rollsum::bup::Bup
[−]
[src]
pub struct Bup { // some fields omitted }
Rolling checksum method used by bup
Strongly based on https://github.com/bup/bup/blob/706e8d273/lib/bup/bupsplit.c https://github.com/bup/bup/blob/706e8d273/lib/bup/bupsplit.h (a bit like https://godoc.org/camlistore.org/pkg/rollsum)
Methods
impl Bup
[src]
fn new() -> Self
Create new Bup engine with default chunking settings
fn new_with_chunk_bits(chunk_bits: u32) -> Self
Create new Bup engine with custom chunking settings
chunk_bits
is number of bits that need to match in
the edge condition. CHUNK_BITS
constant is the default.
fn find_chunk_edge(&mut self, buf: &[u8]) -> Option<usize>
Find chunk edge using Bup defaults.
See Engine::find_chunk_edge_cond
.
fn count_bits(&self) -> u32
Counts the number of low bits set in the rollsum, assuming
the digest has the bottom CHUNK_BITS
bits set to 1
(i.e. assuming a digest at a default bup chunk edge, as
returned by find_chunk_edge
).
Be aware that there's a deliberate 'bug' in this function
in order to match expected return values from other bupsplit
implementations.
Trait Implementations
impl Default for Bup
[src]
impl Engine for Bup
[src]
type Digest = u32
fn roll_byte(&mut self, newch: u8)
Roll over one byte
fn digest(&self) -> u32
Return current rolling sum digest
fn roll(&mut self, buf: &[u8])
Roll over a slice of bytes
fn find_chunk_edge_cond<F>(&mut self, buf: &[u8], cond: F) -> Option<usize> where F: Fn(&Self) -> bool
Find the end of the chunk. Read more