pub trait BspOutputPacker {
// Required methods
fn output_ports() -> Vec<PortIndex> ⓘ;
fn pack(
self,
node_id: NodeId,
node_name: &str,
) -> Result<NodeOutcome, BspError>;
// Provided methods
fn pack_outputs(
self,
node_id: NodeId,
node_name: &str,
) -> Result<IndexMap<PortIndex, BspValue>, BspError>
where Self: Sized { ... }
fn is_dynamic() -> bool { ... }
}Expand description
Standardized boundary compiler that converts functional return types into NodeOutcome.
Required Methods§
fn output_ports() -> Vec<PortIndex> ⓘ
fn pack(self, node_id: NodeId, node_name: &str) -> Result<NodeOutcome, BspError>
Provided Methods§
Sourcefn pack_outputs(
self,
node_id: NodeId,
node_name: &str,
) -> Result<IndexMap<PortIndex, BspValue>, BspError>where
Self: Sized,
fn pack_outputs(
self,
node_id: NodeId,
node_name: &str,
) -> Result<IndexMap<PortIndex, BspValue>, BspError>where
Self: Sized,
Packs typed outputs into the raw port map — the form
crate::node::DataflowNode implementors return.
The default routes through BspOutputPacker::pack; a Suspend outcome has no
port map and is rejected as a validation error (dataflow nodes never suspend —
suspend-capable nodes implement crate::node::BspNode directly).
Sourcefn is_dynamic() -> bool
fn is_dynamic() -> bool
Returns whether this output compiles dynamic outputs that bypass static validation checks.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".