Skip to main content

Element

Trait Element 

Source
pub trait Element: Send {
    // Required methods
    fn name(&self) -> Arc<str> ;
    fn element_type(&self) -> ElementType;
    fn pp_log(&self) -> &PpLog;
    fn pp_log_mut(&mut self) -> &mut PpLog;

    // Provided method
    fn graph_id(&self) -> Option<ElementId> { ... }
}
Expand description

A node in the pipeline graph with a name. Plain identity only — says nothing about whether the node has an input, an output, both, or neither.

Required Methods§

Source

fn name(&self) -> Arc<str>

Returns a cheap clone (refcount bump, not a deep copy) of this element’s name — crate::bus::BusEvent stores names as Arc<str> for exactly this reason: a hot path like crate::queue::Queue posting BusEvent::Dropped once per overflowed buffer shouldn’t pay for a fresh heap allocation every time it wants to report which element it is.

Source

fn element_type(&self) -> ElementType

Source

fn pp_log(&self) -> &PpLog

This element’s identity for crate::bus::Bus::post — same id/name as Element::name, just already wrapped as the crate::pp_log::PpLog its pp_info!/pp_warn!/pp_error! macros need. A stored private field, not built fresh per call, for the same reason name() returns a cheap Arc<str> clone instead of a fresh String — see its own docs.

Source

fn pp_log_mut(&mut self) -> &mut PpLog

Mutable access to the same field Element::pp_log reads — used by crate::pipeline::ChainBuilder to stamp the owning crate::pipeline::Pipeline’s id onto every element that passes through it, via element_pp_log. Not meant to be called from anywhere else.

Provided Methods§

Source

fn graph_id(&self) -> Option<ElementId>

A pre-reserved graph identity for elements that expose dynamic attachment handles. Most elements receive an ID from ChainBuilder and keep the default None implementation.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§