Struct AccountPipe

Source
pub struct AccountPipe<T: Send> {
    pub decoder: Box<dyn for<'a> AccountDecoder<'a, AccountType = T> + Send + Sync + 'static>,
    pub processor: Box<dyn Processor<InputType = AccountProcessorInputType<T>> + Send + Sync>,
    pub filters: Vec<Box<dyn Filter + Send + Sync + 'static>>,
}
Expand description

A processing pipe that decodes and processes Solana account updates.

AccountPipe combines an AccountDecoder and a Processor to manage account updates in the pipeline. This struct decodes the raw account data and then processes the resulting DecodedAccount with the specified processing logic.

§Type Parameters

  • T: The data type of the decoded account information, as determined by the decoder.

§Fields

  • decoder: An AccountDecoder that decodes raw account data into structured form.
  • processor: A Processor that handles the processing logic for decoded accounts.
  • filters: A collection of filters that determine which account updates should be processed. Each filter in this collection is applied to incoming account 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> AccountDecoder<'a, AccountType = T> + Send + Sync + 'static>§processor: Box<dyn Processor<InputType = AccountProcessorInputType<T>> + Send + Sync>§filters: Vec<Box<dyn Filter + Send + Sync + 'static>>

Trait Implementations§

Source§

impl<T: Send> AccountPipes for AccountPipe<T>

Source§

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

Source§

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

Auto Trait Implementations§

§

impl<T> Freeze for AccountPipe<T>

§

impl<T> !RefUnwindSafe for AccountPipe<T>

§

impl<T> Send for AccountPipe<T>

§

impl<T> Sync for AccountPipe<T>

§

impl<T> Unpin for AccountPipe<T>

§

impl<T> !UnwindSafe for AccountPipe<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