Function flowclib::dumper::dump_tables::dump_functions[][src]

pub fn dump_functions(
    flow: &Flow,
    tables: &GenerationTables,
    output_dir: &Path
) -> Result<String>

dump a flow’s functions graph as a .dot file to visualize dependencies

Example

use std::env;
use url::Url;
use provider::content::provider::Provider;
use provider::errors::Result;
use flowclib::model::process::Process::FlowProcess;

struct DummyProvider {}

impl Provider for DummyProvider {
    fn resolve_url(&self, url: &str, default_filename: &str, _ext: &[&str]) -> Result<(String, Option<String>)> {
        Ok((url.to_string(), None))
    }

    // Return a flow definition for the content for the example
    fn get_contents(&self, url: &str) -> Result<Vec<u8>> {
        Ok("flow = \"dummy\"".as_bytes().to_owned())
    }
}

let dummy_provider = DummyProvider {};
let mut url = url::Url::from_file_path(env::current_dir().unwrap()).unwrap();
url = url.join("samples/hello-world-simple/context.toml").unwrap();

if let FlowProcess(mut flow) = flowclib::compiler::loader::load(&url.to_string(),
                                                          &dummy_provider).unwrap() {
    let tables = flowclib::compiler::compile::compile(&mut flow).unwrap();
    let output_dir = tempdir::TempDir::new("flow").unwrap().into_path();

    flowclib::dumper::dump_tables::dump_functions(&flow, &tables, &output_dir).unwrap();
}