Struct InstructionPipe

Source
pub struct InstructionPipe<T: Send> {
    pub decoder: Box<dyn for<'a> InstructionDecoder<'a, InstructionType = T> + Send + Sync + 'static>,
    pub processor: Box<dyn Processor<InputType = InstructionProcessorInputType<T>> + Send + Sync + 'static>,
    pub filters: Vec<Box<dyn Filter + Send + Sync + 'static>>,
}
Expand description

A processing pipeline for instructions, using a decoder and processor.

The InstructionPipe structure enables the processing of decoded instructions, pairing an InstructionDecoder with a Processor. It supports generic instruction types.

§Type Parameters

  • T: The type representing the decoded instruction data.

§Fields

  • decoder: The decoder used for parsing instructions.
  • processor: The processor that handles decoded instructions.
  • filters: A collection of filters that determine which instruction updates should be processed. Each filter in this collection is applied to incoming instruction updates, and only updates that pass all filters (return true) will be processed. If this collection is empty, all updates are processed.

Fields§

§decoder: Box<dyn for<'a> InstructionDecoder<'a, InstructionType = T> + Send + Sync + 'static>§processor: Box<dyn Processor<InputType = InstructionProcessorInputType<T>> + Send + Sync + 'static>§filters: Vec<Box<dyn Filter + Send + Sync + 'static>>

Trait Implementations§

Source§

impl<T: Send + 'static> InstructionPipes<'_> for InstructionPipe<T>

Source§

fn run<'life0, 'life1, 'async_trait>( &'life0 mut self, nested_instruction: &'life1 NestedInstruction, metrics: Arc<MetricsCollection>, ) -> Pin<Box<dyn Future<Output = CarbonResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source§

fn filters(&self) -> &Vec<Box<dyn Filter + Send + Sync + 'static>>

Auto Trait Implementations§

§

impl<T> Freeze for InstructionPipe<T>

§

impl<T> !RefUnwindSafe for InstructionPipe<T>

§

impl<T> Send for InstructionPipe<T>

§

impl<T> Sync for InstructionPipe<T>

§

impl<T> Unpin for InstructionPipe<T>

§

impl<T> !UnwindSafe for InstructionPipe<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V