graphflo 0.1.0

The graphflo plugin for libflo.
Documentation
pub mod serialization {
    pub use serialization::keyed_node_desc::KeyedNodeDesc;

    pub use serialization::node_desc::NodeDesc;

    pub use serialization::node_connector_descs::NodeConnectorDescs;

    pub use serialization::node_connector_desc::NodeConnectorDesc;

    pub use serialization::resources::Resources;

    mod keyed_node_desc {
        use serialization::NodeDesc;

        #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
        pub struct KeyedNodeDesc {
            pub key: usize,
            pub node_desc: NodeDesc,
        }

        impl KeyedNodeDesc {
            pub fn new(key: usize, node_desc: NodeDesc) -> Self {
                KeyedNodeDesc{ key: key, node_desc: node_desc }
            }
        }
    }

    mod node_desc {
        use serialization::NodeConnectorDescs;

        #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
        pub struct NodeDesc {
            pub title: String,
            pub has_input: bool,
            pub has_output: bool,
            pub left_connectors: NodeConnectorDescs,
            pub right_connectors: NodeConnectorDescs,
            pub min_width: Option<u32>,
            pub min_height: Option<u32>,
        }
    }

    mod node_connector_descs {
        use serialization::NodeConnectorDesc;

        #[allow(non_camel_case_types)]
        #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
        pub enum NodeConnectorDescs {
            none,
            constant(Vec<NodeConnectorDesc>),
            variable(NodeConnectorDesc),
        }
    }

    mod node_connector_desc {
        #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
        pub struct NodeConnectorDesc {
            pub name: String,
        }
    }

    mod resources {
        use serialization::NodeDesc;
        #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
        pub struct Resources {
            pub node_descriptions: Option<Vec<NodeDesc>>,
        }

        impl Resources {
            pub fn destructure(self) -> (Option<Vec<NodeDesc>>) {
                (self.node_descriptions)
            }
        }
    }

    pub mod dynamic_event {
        pub use serialization::dynamic_event::add_node_arg::AddNodeArg;
        pub use serialization::dynamic_event::connect_nodes_arg::ConnectNodesArg;

        mod add_node_arg {
            #[derive(Clone, Debug, Eq, PartialEq, Serialize)]
            pub struct AddNodeArg<'a, 'b> {
                pub index: usize,
                pub node_desc: usize,
                pub input_connectors: &'a Vec<usize>,
                pub output_connectors: &'b Vec<usize>
            }

            impl <'a, 'b> AddNodeArg<'a, 'b> {
                pub fn new(index: usize, node_desc: usize, input_connectors: &'a Vec<usize>, output_connectors: &'b Vec<usize>) -> Self {
                    AddNodeArg {
                        index: index,
                        node_desc: node_desc,
                        input_connectors: input_connectors,
                        output_connectors: output_connectors
                    }
                }
            }
        }

        mod connect_nodes_arg {
            #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
            pub struct ConnectNodesArg {
                pub start_connector_index: usize,
                pub finish_connector_index: usize,
            }

            impl ConnectNodesArg {
                pub fn new(start_connector_index: usize, finish_connector_index: usize) -> Self {
                    ConnectNodesArg {
                        start_connector_index: start_connector_index,
                        finish_connector_index: finish_connector_index,
                    }
                }
            }
        }
    }

    pub mod func {
        pub use serialization::func::add_node_arg::AddNodeArg;
        pub use serialization::func::connect_nodes_arg::ConnectNodesArg;

        mod add_node_arg {
            #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
            pub struct AddNodeArg {
                pub node_desc: usize,
            }
        }

        mod connect_nodes_arg {
            #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
            pub struct ConnectNodesArg {
                pub start_connector_index: usize,
                pub finish_connector_index: usize,
            }
        }
    }
}