reth_transaction_pool/pool/
update.rs1use crate::{
4 identifier::TransactionId, pool::state::SubPool, PoolTransaction, ValidPoolTransaction,
5};
6use std::sync::Arc;
7
8#[derive(Debug)]
12pub(crate) struct PoolUpdate {
13 pub(crate) id: TransactionId,
15 pub(crate) current: SubPool,
17 pub(crate) destination: Destination,
19}
20
21#[derive(Debug)]
23pub(crate) enum Destination {
24 Discard,
26 Pool(SubPool),
28}
29
30impl From<SubPool> for Destination {
31 fn from(sub_pool: SubPool) -> Self {
32 Self::Pool(sub_pool)
33 }
34}
35
36#[derive(Debug)]
38pub(crate) struct UpdateOutcome<T: PoolTransaction> {
39 pub(crate) promoted: Vec<Arc<ValidPoolTransaction<T>>>,
41 pub(crate) discarded: Vec<Arc<ValidPoolTransaction<T>>>,
43}
44
45impl<T: PoolTransaction> Default for UpdateOutcome<T> {
46 fn default() -> Self {
47 Self { promoted: vec![], discarded: vec![] }
48 }
49}