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§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§