4 个版本 (2 个破坏性更新)

使用旧 Rust 2015

0.3.0 2020 年 9 月 27 日
0.2.1 2016 年 5 月 30 日
0.2.0 2016 年 3 月 22 日
0.1.0 2015 年 5 月 6 日

#7 in #chunking

每月 40 次下载
用于 hash-roll

BSD-3-Clause

18KB
533 行代码(不包括注释)

rollsum 基于 bupsplit,而 bupsplit 又基于 rsync 块化。

接口可能会更改。

https://docs.rs/rollsum

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
        }
    }
}

无运行时依赖