daedalus_planner/
helpers.rs

1use crate::{ComputeAffinity, NodeInstance};
2
3/// Convenience helper to build a `NodeInstance` for tests/examples.
4///
5/// ```
6/// use daedalus_planner::helpers::node;
7/// use daedalus_planner::ComputeAffinity;
8/// let instance = node("demo", ComputeAffinity::CpuOnly, ["in"], ["out"]);
9/// assert_eq!(instance.outputs.len(), 1);
10/// ```
11pub fn node(
12    id: impl Into<String>,
13    compute: ComputeAffinity,
14    inputs: impl IntoIterator<Item = impl Into<String>>,
15    outputs: impl IntoIterator<Item = impl Into<String>>,
16) -> NodeInstance {
17    NodeInstance {
18        id: daedalus_registry::ids::NodeId::new(id.into()),
19        bundle: None,
20        label: None,
21        inputs: inputs.into_iter().map(Into::into).collect(),
22        outputs: outputs.into_iter().map(Into::into).collect(),
23        compute,
24        const_inputs: Vec::new(),
25        sync_groups: Vec::new(),
26        metadata: Default::default(),
27    }
28}