pirate-librustzcash/zcash_history/examples/write.rs
Sean Bowe 4f0f10a53c Add 'zcash_history/' from commit 'e2c131fdc308265adcab774e54d4d5804c23b368'
git-subtree-dir: zcash_history
git-subtree-mainline: be0ee9eb82
git-subtree-split: e2c131fdc3
2020-03-03 17:51:19 -07:00

41 lines
1.0 KiB
Rust

#[path= "lib/shared.rs"]
mod share;
// Test data generator
// $ cargo run --example writer -- 16 nodes.dat
// or
// $ cargo run --example writer -- 16
// to preview
fn main() {
let mut args = std::env::args().skip(1);
let (number, out_file) = match args.next() {
None => { eprintln!("writer <number of nodes> [<out_file>]"); std::process::exit(1); },
Some(number) => {
(number.parse::<usize>().expect("invalid number"), args.next())
}
};
let iterator = share::NodeDataIterator::new().take(number);
if let Some(out_file_path) = out_file {
use std::io::Write;
let mut buf = Vec::new();
for node in iterator{
node.write(&mut buf).expect("Failed to write data");
}
let mut file = std::fs::File::create(&out_file_path)
.expect("Failed to create output file");
file.write_all(&buf[..])
.expect("Failed to write data to file");
} else {
for n in iterator {
println!("{:?}", n);
}
}
}