Skip to main content

HigherOrderBinding

Trait HigherOrderBinding 

Source
pub trait HigherOrderBinding: ProducerBinding {
    // Required methods
    fn register_project(&self, project: ProjectFn) -> FnId;
    fn invoke_project(&self, fn_id: FnId, value: HandleId) -> NodeId;
}
Expand description

Closure-registration interface for higher-order operators.

Extends ProducerBinding with one method that bindings shipping higher-order operators must implement.

Required Methods§

Source

fn register_project(&self, project: ProjectFn) -> FnId

Register a project closure. The returned FnId is captured by the operator’s build closure and looked up via Self::invoke_project on each outer DATA fire.

Source

fn invoke_project(&self, fn_id: FnId, value: HandleId) -> NodeId

Invoke a registered project closure with the given outer DATA handle. Returns the inner node’s NodeId.

§Panics

Implementations panic if fn_id is not a registered project closure.

Implementors§