graphflo 0.1.0

The graphflo plugin for libflo.
Documentation
use { file_funcs, Payload, string };
use libflo_module::{ ModuleMapper, PathResolver };
use error::*;

pub fn load(
    module_mapper: &ModuleMapper,
    path_resolver: &PathResolver,
) -> Result<Payload> {
    let my_id = module_mapper.get(string::self_module_name())?;
    let resources_file_name = string::resources_file_name();

    let mut result_node_descriptions = Vec::new();
    for (_, module_id) in module_mapper.get_raw_map() {
        if let Some(resources_json_path) =  path_resolver.try_find_submodule_file_path(resources_file_name, *module_id, my_id)? {
            let resources_json = file_funcs::resources_from_path(resources_json_path)?;
            let node_descriptions = resources_json.destructure();

            if let Some(node_descriptions) = node_descriptions {
                for node_description in node_descriptions {
                    result_node_descriptions.push(node_description);
                }
            }
        }
    }

    Ok(Payload::new(result_node_descriptions))
}