Skip to main content

DynMultiOutputElement

Trait DynMultiOutputElement 

Source
pub trait DynMultiOutputElement: ElementBound {
    // Required methods
    fn caps_constraint_as_input(&self) -> CapsConstraint<'_>;
    fn port_output_caps(&self, port: usize) -> Option<Caps>;
    fn configure_pipeline(
        &mut self,
        absolute_caps: &Caps,
    ) -> Result<ConfigureOutcome, G2gError>;
    fn process<'a>(
        &'a mut self,
        packet: PipelinePacket,
        out: &'a mut dyn MultiOutputSink,
    ) -> BoxFuture<'a, Result<(), G2gError>>;
    fn properties(&self) -> &'static [PropertySpec];
    fn set_property(
        &mut self,
        name: &str,
        value: PropValue,
    ) -> Result<(), PropError>;
    fn get_property(&self, name: &str) -> Option<PropValue>;

    // Provided methods
    fn input_domains(&self) -> DomainSet { ... }
    fn set_instance_name(&mut self, _name: String) { ... }
    fn set_log_category(&mut self, _category: String) { ... }
}
Expand description

Dyn-safe mirror of MultiOutputElement for a fan-out demux node in the DAG runner, the transpose of DynMultiInputElement. Boxes process’s future and forwards the Self: Sized constraint methods. Only the methods the runner uses are mirrored.

Required Methods§

Source

fn caps_constraint_as_input(&self) -> CapsConstraint<'_>

Source

fn port_output_caps(&self, port: usize) -> Option<Caps>

Source

fn configure_pipeline( &mut self, absolute_caps: &Caps, ) -> Result<ConfigureOutcome, G2gError>

Source

fn process<'a>( &'a mut self, packet: PipelinePacket, out: &'a mut dyn MultiOutputSink, ) -> BoxFuture<'a, Result<(), G2gError>>

Source

fn properties(&self) -> &'static [PropertySpec]

Source

fn set_property( &mut self, name: &str, value: PropValue, ) -> Result<(), PropError>

Source

fn get_property(&self, name: &str) -> Option<PropValue>

Provided Methods§

Source

fn input_domains(&self) -> DomainSet

Source

fn set_instance_name(&mut self, _name: String)

Dyn-safe mirror of MultiOutputElement::set_instance_name, so the runner can name an erased demux instance for logging.

Source

fn set_log_category(&mut self, _category: String)

Trait Implementations§

Source§

impl<'b> DynMultiOutputElement for &'b mut (dyn DynMultiOutputElement + 'b)

Forwarding impl so a borrowed &mut dyn DynMultiOutputElement can be boxed into a Box<dyn DynMultiOutputElement + 'a> graph node (the borrowing-graph convenience wrappers). Disjoint from the MultiOutputElement blanket above.

Source§

fn caps_constraint_as_input(&self) -> CapsConstraint<'_>

Source§

fn input_domains(&self) -> DomainSet

Source§

fn port_output_caps(&self, port: usize) -> Option<Caps>

Source§

fn configure_pipeline( &mut self, absolute_caps: &Caps, ) -> Result<ConfigureOutcome, G2gError>

Source§

fn process<'a>( &'a mut self, packet: PipelinePacket, out: &'a mut dyn MultiOutputSink, ) -> BoxFuture<'a, Result<(), G2gError>>

Source§

fn properties(&self) -> &'static [PropertySpec]

Source§

fn set_property( &mut self, name: &str, value: PropValue, ) -> Result<(), PropError>

Source§

fn get_property(&self, name: &str) -> Option<PropValue>

Source§

fn set_instance_name(&mut self, name: String)

Dyn-safe mirror of MultiOutputElement::set_instance_name, so the runner can name an erased demux instance for logging.
Source§

fn set_log_category(&mut self, category: String)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'b> DynMultiOutputElement for &'b mut (dyn DynMultiOutputElement + 'b)

Forwarding impl so a borrowed &mut dyn DynMultiOutputElement can be boxed into a Box<dyn DynMultiOutputElement + 'a> graph node (the borrowing-graph convenience wrappers). Disjoint from the MultiOutputElement blanket above.

Source§

impl<T: MultiOutputElement> DynMultiOutputElement for T