Skip to main content

Processable

Trait Processable 

Source
pub trait Processable<T: Transcendental, const BUF_SIZE: usize> {
    // Required method
    fn process_block(
        &mut self,
        ctx: &mut ProcessContext<'_>,
    ) -> ProcessResult<()>;
}
Expand description

A node or component that can process a block of signal data.

This is the main execution trait for the signal graph. Each node type (Source, Processor, Router, Sink) implements this via blanket impls that delegate to their respective generate/process/route/consume.

Required Methods§

Source

fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>

Process one block of signal samples.

§Errors

Returns a ProcessError if processing fails.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<T, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for Box<dyn Processor<T, BUF_SIZE>>
where T: Transcendental,

Source§

fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>

Source§

impl<T, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for Box<dyn Sink<T, BUF_SIZE>>
where T: Transcendental,

Source§

fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>

Source§

impl<T, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for Box<dyn Source<T, BUF_SIZE>>
where T: Transcendental,

Source§

fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>

Source§

impl<T, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for Box<dyn Router<T, BUF_SIZE>>
where T: Transcendental,

Source§

fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>

Implementors§

Source§

impl<T: Transcendental, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for NodeVariant<T, BUF_SIZE>