Struct tetsy_transaction_pool::Pool[][src]

pub struct Pool<T: VerifiedTransaction, S: Scoring<T>, L = NoopListener> { /* fields omitted */ }

A transaction pool.

Implementations

impl<T: VerifiedTransaction, S: Scoring<T> + Default> Pool<T, S>[src]

pub fn with_options(options: Options) -> Self[src]

Creates a new Pool with given options and default Scoring and Listener.

impl<T: VerifiedTransaction, S: Scoring<T>> Pool<T, S>[src]

pub fn with_scoring(scoring: S, options: Options) -> Self[src]

Creates a new Pool with given Scoring and options.

impl<T, S, L> Pool<T, S, L> where
    T: VerifiedTransaction,
    S: Scoring<T>,
    L: Listener<T>, 
[src]

pub fn new(listener: L, scoring: S, options: Options) -> Self[src]

Creates new Pool with given Scoring, Listener and options.

pub fn import(
    &mut self,
    transaction: T,
    replace: &dyn ShouldReplace<T>
) -> Result<Arc<T>, Error<T::Hash>>
[src]

Attempts to import new transaction to the pool, returns a Arc<T> or an Error.

NOTE: Since Readyness is separate from the pool it's possible to import stalled transactions. It's the caller responsibility to make sure that's not the case.

NOTE: The transaction may push out some other transactions from the pool either because of limits (see Options) or because Scoring decides that the transaction replaces an existing transaction from that sender.

If any limit is reached the transaction with the lowest Score will be compared with the new transaction via the supplied ShouldReplace implementation and may be evicted.

The Listener will be informed on any drops or rejections.

pub fn clear(&mut self)[src]

Clears pool from all transactions. This causes a listener notification that all transactions were dropped. NOTE: the drop-notification order will be arbitrary.

pub fn remove(&mut self, hash: &T::Hash, is_invalid: bool) -> Option<Arc<T>>[src]

Removes single transaction from the pool. Depending on the is_invalid flag the listener will either get a cancelled or invalid notification.

pub fn cull<R: Ready<T>>(
    &mut self,
    senders: Option<&[T::Sender]>,
    ready: R
) -> usize
[src]

Removes all stalled transactions from given sender list (or from all senders).

pub fn find(&self, hash: &T::Hash) -> Option<Arc<T>>[src]

Returns a transaction if it's part of the pool or None otherwise.

pub fn worst_transaction(&self) -> Option<Arc<T>>[src]

Returns worst transaction in the queue (if any).

pub fn is_full(&self) -> bool[src]

Returns true if the pool is at it's capacity.

pub fn senders(&self) -> impl Iterator<Item = &T::Sender>[src]

Returns senders ordered by priority of their transactions.

pub fn pending<R: Ready<T>>(&self, ready: R) -> PendingIterator<'_, T, R, S, L>

Notable traits for PendingIterator<'a, T, R, S, L>

impl<'a, T, R, S, L> Iterator for PendingIterator<'a, T, R, S, L> where
    T: VerifiedTransaction,
    R: Ready<T>,
    S: Scoring<T>, 
type Item = Arc<T>;
[src]

Returns an iterator of pending (ready) transactions.

pub fn pending_from_sender<R: Ready<T>>(
    &self,
    ready: R,
    sender: &T::Sender
) -> PendingIterator<'_, T, R, S, L>

Notable traits for PendingIterator<'a, T, R, S, L>

impl<'a, T, R, S, L> Iterator for PendingIterator<'a, T, R, S, L> where
    T: VerifiedTransaction,
    R: Ready<T>,
    S: Scoring<T>, 
type Item = Arc<T>;
[src]

Returns pending (ready) transactions from given sender.

pub fn unordered_pending<R: Ready<T>>(
    &self,
    ready: R
) -> UnorderedIterator<'_, T, R, S>

Notable traits for UnorderedIterator<'a, T, R, S>

impl<'a, T, R, S> Iterator for UnorderedIterator<'a, T, R, S> where
    T: VerifiedTransaction,
    R: Ready<T>,
    S: Scoring<T>, 
type Item = Arc<T>;
[src]

Returns unprioritized list of ready transactions.

pub fn update_scores(&mut self, sender: &T::Sender, event: S::Event)[src]

Update score of transactions of a particular sender.

pub fn status<R: Ready<T>>(&self, ready: R) -> Status[src]

Computes the full status of the pool (including readiness).

pub fn light_status(&self) -> LightStatus[src]

Returns light status of the pool.

pub fn options(&self) -> Options[src]

Returns current pool options.

pub fn listener(&self) -> &L[src]

Borrows listener instance.

pub fn scoring(&self) -> &S[src]

Borrows scoring instance.

pub fn listener_mut(&mut self) -> &mut L[src]

Borrows listener mutably.

Trait Implementations

impl<T: Debug + VerifiedTransaction, S: Debug + Scoring<T>, L: Debug> Debug for Pool<T, S, L> where
    T::Sender: Debug,
    T::Hash: Debug,
    S::Score: Debug,
    S::Score: Debug
[src]

impl<T: VerifiedTransaction, S: Scoring<T> + Default> Default for Pool<T, S>[src]

Auto Trait Implementations

impl<T, S, L> RefUnwindSafe for Pool<T, S, L> where
    L: RefUnwindSafe,
    S: RefUnwindSafe,
    T: RefUnwindSafe,
    <T as VerifiedTransaction>::Hash: RefUnwindSafe,
    <S as Scoring<T>>::Score: RefUnwindSafe,
    <T as VerifiedTransaction>::Sender: RefUnwindSafe
[src]

impl<T, S, L> Send for Pool<T, S, L> where
    L: Send,
    S: Send,
    T: Send + Sync,
    <T as VerifiedTransaction>::Hash: Send
[src]

impl<T, S, L> Sync for Pool<T, S, L> where
    L: Sync,
    S: Sync,
    T: Send + Sync,
    <T as VerifiedTransaction>::Hash: Sync,
    <S as Scoring<T>>::Score: Sync,
    <T as VerifiedTransaction>::Sender: Sync
[src]

impl<T, S, L> Unpin for Pool<T, S, L> where
    L: Unpin,
    S: Unpin,
    <T as VerifiedTransaction>::Hash: Unpin,
    <S as Scoring<T>>::Score: Unpin,
    <T as VerifiedTransaction>::Sender: Unpin
[src]

impl<T, S, L> UnwindSafe for Pool<T, S, L> where
    L: UnwindSafe,
    S: UnwindSafe,
    T: RefUnwindSafe,
    <T as VerifiedTransaction>::Hash: UnwindSafe,
    <S as Scoring<T>>::Score: RefUnwindSafe + UnwindSafe,
    <T as VerifiedTransaction>::Sender: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.