#![allow(unused)]
#[cfg(feature = "generate-diagrams")]
extern crate hyper;
#[cfg(feature = "generate-diagrams")]
mod generate_diagrams {
use hyper::Client;
use hyper::client::IntoUrl;
use std::fs::{self, File};
use std::io;
use std::path::{Path, PathBuf};
pub fn download_image<U: IntoUrl>(name: &str, src: U) {
download(src, image_path(name))
}
fn download<U: IntoUrl, P: AsRef<Path>>(src: U, dst: P) {
let client = Client::new();
let mut res = client.get(src).send().unwrap();
if let Some(dir) = dst.as_ref().parent() {
fs::create_dir_all(dir).unwrap();
}
let mut file = File::create(dst).unwrap();
io::copy(&mut res, &mut file).unwrap();
}
fn image_path(name: &str) -> PathBuf {
let mut path = PathBuf::from("target/doc/safe_vault");
path.push(name);
path.set_extension("png");
path
}
}
#[cfg(feature = "generate-diagrams")]
fn main() {
generate_diagrams::download_image(
"personas",
"https://cacoo.com/diagrams/wl6of3FUFriB0FWO-0BD19.png",
);
generate_diagrams::download_image(
"immutable-data-put-flow",
"https://cacoo.com/diagrams/SCHrwEhLRB86EGe1-EF9A0.png",
);
generate_diagrams::download_image(
"immutable-data-get-flow",
"https://cacoo.com/diagrams/ndcPMKC3WapABSaA-EF9A0.png",
);
}
#[cfg(not(feature = "generate-diagrams"))]
fn main() {}