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]

fn default() -> Self

Returns the "default value" for a type. Read more

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