mach_core/dag/
graph_macro.rs

1
2#[allow(unused)]
3#[macro_export]
4macro_rules! graph {
5    ($var:ident, $block:block) => {
6        let mut $var = MachGraph::default();
7        $block;
8    };
9    ($var:ident, $name:expr, $block:block) => {
10        let mut $var = MachGraph::new($name);
11        $block;
12    };
13}
14
15#[allow(unused)]
16#[macro_export]
17macro_rules! node {
18    ($graph:ident, $var:ident, $name:expr) => {
19        let $var = $graph.push_child($name);
20    };
21    ($graph:ident, $var:ident, $name:expr, $block:block) => {
22        let $var = $graph.push_child($name);
23        $block;
24    };
25    ($graph:ident, $var:ident, $name:expr, $parent:expr) => {
26        let $var = $graph.push_child_of($name, &$parent);
27    };
28    ($graph:ident, $var:ident, $name:expr, $parent:expr, $block:block) => {
29        let $var = $graph.push_child_of($name, &$parent);
30        $block;
31    };
32}
33
34
35/*
36
37mach!(graph, {
38    node!(graph, left, "left", {
39        node!(graph, child, "another", left, {
40            node!(graph, child_child, "ch", left_c);
41        });
42    });
43});
44
45*/