Struct tetsy_transaction_pool::Pool [−][src]
pub struct Pool<T: VerifiedTransaction, S: Scoring<T>, L = NoopListener> { /* fields omitted */ }
Expand description
A transaction pool.
Implementations
Creates a new Pool
with given options
and default Scoring
and Listener
.
Creates a new Pool
with given Scoring
and options.
Creates new Pool
with given Scoring
, Listener
and options.
Attempts to import new transaction to the pool, returns a Arc<T>
or an Error
.
NOTE: Since Ready
ness 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.
Clears pool from all transactions. This causes a listener notification that all transactions were dropped. NOTE: the drop-notification order will be arbitrary.
Removes single transaction from the pool.
Depending on the is_invalid
flag the listener
will either get a cancelled
or invalid
notification.
Removes all stalled transactions from given sender list (or from all senders).
Returns a transaction if it’s part of the pool or None
otherwise.
Returns worst transaction in the queue (if any).
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]
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]
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]
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.
Update score of transactions of a particular sender.
Computes the full status of the pool (including readiness).
Returns light status of the pool.
Borrows listener mutably.
Trait Implementations
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,
impl<T, S, L> Send for Pool<T, S, L> where
L: Send,
S: Send,
T: Send + Sync,
<T as VerifiedTransaction>::Hash: Send,
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,
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,
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,