icentral_graph_interface/
delegate.rs

1crate::ix!();
2
3#[macro_export] macro_rules! delegate_to_graphhash {
4    ($tag:ident) => {
5        paste::item!{
6            delegate!{
7                to self.$tag {
8
9                    #[call(parents_for_node)]
10                    pub fn [<$tag _parents_for_node>](&self, n: NodeId) -> Vec<NodeId>;
11
12                    #[call(insert_edge)]
13                    pub fn [<$tag _insert_edge>](&mut self, e: &Edge);
14
15                    #[call(init_dbg_iteration)]
16                    pub fn [<$tag _init_dbg_iteration>](&mut self, s: NodeId);
17
18                    #[call(dbg_iteration_step)]
19                    pub fn [<$tag _dbg_iteration_step>](
20                        &mut self, 
21                        v_s: &mut Vec<NodeId>) 
22                        -> Result<(),BetweennessCentralityError>;
23
24                    #[call(remove_edge)]
25                    pub fn [<$tag _remove_edge>](&mut self, edge: &Edge)
26                        -> Result<(),BetweennessCentralityError>;
27
28                    #[call(num_nodes)]
29                    pub fn [<$tag _num_nodes>](&self) -> usize;
30
31                    #[call(num_edges)]
32                    pub fn [<$tag _num_edges>](&self) -> usize;
33
34                    #[call(find_pruning_counts_exp)]
35                    pub fn [<$tag _find_pruning_counts_exp>](&mut self, 
36                        src:    NodeId,
37                        dst:    NodeId) 
38                        -> Result<(i32,i32,i32),BetweennessCentralityError>;
39
40                    #[call(sigma_value_for_node)]
41                    pub fn [<$tag _sigma_value_for_node>](&self, node: NodeId) -> f64;
42
43                    #[call(pair_dependency_for_node)]
44                    pub fn [<$tag _pair_dependency_for_node>](&self, node: NodeId) -> f64;
45
46                    #[call(mapped_nodes)]
47                    pub fn [<$tag _mapped_nodes>](&self) -> Vec<NodeId>;
48
49                    #[call(has_edge)]
50                    pub fn [<$tag _has_edge>](&self, e: &Edge) -> bool;
51                }
52            }
53        }
54    }
55}