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,
}
}
}
}