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 (returntrue) 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>
impl<T: Send + 'static> InstructionPipes<'_> for InstructionPipe<T>
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,
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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