1use reflink;
2
3use std::time::Instant;
4use std::io::{self, Read};
5use std::fs;
6
7fn main() {
8 let mut base_file = fs::File::create("base.txt").unwrap();
9 let mut src = io::repeat(65).take(100 * 1024 * 1024); io::copy(&mut src, &mut base_file).unwrap();
11
12 let before_reflink = Instant::now();
13 match reflink::reflink("base.txt", "reflinked.txt") {
14 Ok(()) => {},
15 Err(e) => {
16 println!("Error during reflinking:\n{:?}", e);
17 fs::remove_file("base.txt").unwrap();
18 return;
19 }
20 };
21 println!("Time to reflink: {:?}", Instant::now() - before_reflink);
22
23 let before_copy = Instant::now();
24 fs::copy("base.txt", "copied.txt").unwrap();
25 println!("Time to copy: {:?}", Instant::now() - before_copy);
26
27 fs::remove_file("base.txt").unwrap();
28 fs::remove_file("reflinked.txt").unwrap();
29 fs::remove_file("copied.txt").unwrap();
30}