Skip to content

aidanhs/rsroll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rollsum is based on bupsplit, which in turn is based on rsync chunking.

Interface liable to change.

http://aidanhs.github.io/rsroll/

extern crate rollsum;

use std::env;
use std::fs;
use std::path::Path;
use std::io::prelude::*;

pub fn main () {
    let args: Vec<_> = env::args().collect();
    let mut file = fs::File::open(&Path::new(&args[1])).unwrap();
    let mut buf = vec![];
    file.read_to_end(&mut buf).unwrap();

    let mut ofs: usize = 0;
    while ofs < buf.len() {
        let mut b = rollsum::Bup::new();
        if let Some(count) = b.find_chunk_edge(&buf[ofs..]) {
            ofs += count;
            println!("found edge at {}", ofs);
        } else {
            println!("end of the line!");
            break
        }
    }
}