jellyflow_runtime/runtime/policy/
mod.rs1mod edge;
8mod node;
9mod port;
10
11use crate::io::NodeGraphInteractionState;
12use jellyflow_core::core::{Edge, Node, Port};
13
14pub use edge::{
15 NodeGraphEdgeInteractionPolicy, resolve_edge_hit_test_options, resolve_edge_interaction_policy,
16};
17pub use node::{NodeGraphNodeInteractionPolicy, resolve_node_interaction_policy};
18pub use port::{NodeGraphPortInteractionPolicy, resolve_port_interaction_policy};
19
20impl NodeGraphInteractionState {
21 pub fn node_interaction_policy(&self, node: &Node) -> NodeGraphNodeInteractionPolicy {
22 resolve_node_interaction_policy(node, self)
23 }
24
25 pub fn port_interaction_policy(
26 &self,
27 node: &Node,
28 port: &Port,
29 ) -> NodeGraphPortInteractionPolicy {
30 resolve_port_interaction_policy(node, port, self)
31 }
32
33 pub fn edge_interaction_policy(&self, edge: &Edge) -> NodeGraphEdgeInteractionPolicy {
34 resolve_edge_interaction_policy(edge, self)
35 }
36
37 pub fn edge_hit_test_options_for(
38 &self,
39 edge: &Edge,
40 ) -> crate::runtime::geometry::EdgeHitTestOptions {
41 resolve_edge_hit_test_options(edge, self)
42 }
43}
44
45#[cfg(test)]
46mod tests;