#![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/routing");
path.push(name);
path.set_extension("png");
path
}
}
#[cfg(feature = "generate-diagrams")]
fn main() {
generate_diagrams::download_image("bootstrap",
"https://cacoo.com/diagrams/cqX6QPN90ZuKXZ0n-F56A2.png");
generate_diagrams::download_image("get-close-group",
"https://cacoo.com/diagrams/PTBt1OgHVcdu0PKt-F56A2.png");
generate_diagrams::download_image("new-node",
"https://cacoo.com/diagrams/5VCFe286q4yfQ6Pm-F56A2.png");
generate_diagrams::download_image("tunnel",
"https://cacoo.com/diagrams/ALXyW2ugR92IxgWd-F56A2.png");
}
#[cfg(not(feature = "generate-diagrams"))]
fn main() {}