protoflow_core

Trait SystemBuilding

source
pub trait SystemBuilding {
    // Required methods
    fn input<M: Message + 'static>(&self) -> InputPort<M>;
    fn output<M: Message + 'static>(&self) -> OutputPort<M>;
    fn block<B: Block + Clone + 'static>(&mut self, block: B) -> B;
    fn connect<M: Message>(
        &mut self,
        source: &OutputPort<M>,
        target: &InputPort<M>,
    ) -> bool;

    // Provided methods
    fn input_any(&self) -> InputPort<Any> { ... }
    fn input_bytes(&self) -> InputPort<Bytes> { ... }
    fn input_string(&self) -> InputPort<String> { ... }
    fn output_any(&self) -> OutputPort<Any> { ... }
    fn output_bytes(&self) -> OutputPort<Bytes> { ... }
    fn output_string(&self) -> OutputPort<String> { ... }
}

Required Methods§

source

fn input<M: Message + 'static>(&self) -> InputPort<M>

Creates a new input port inside the system.

source

fn output<M: Message + 'static>(&self) -> OutputPort<M>

Creates a new output port inside the system.

source

fn block<B: Block + Clone + 'static>(&mut self, block: B) -> B

Instantiates a block inside the system.

source

fn connect<M: Message>( &mut self, source: &OutputPort<M>, target: &InputPort<M>, ) -> bool

Connects two ports of two blocks in the system.

Both ports must be of the same message type.

Provided Methods§

Object Safety§

This trait is not object safe.

Implementors§