mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-13 08:23:32 -07:00
33 lines
1001 B
Rust
33 lines
1001 B
Rust
//! Cycle-internal counters surfaced for observability and the
|
|
//! `examples/mempool.rs` driver. Captured under a single read guard
|
|
//! by `MempoolStats::from(&Mempool)`.
|
|
|
|
use crate::Mempool;
|
|
|
|
#[derive(Debug, Clone, Default)]
|
|
pub struct MempoolStats {
|
|
pub txs: usize,
|
|
pub unresolved: usize,
|
|
pub addrs: usize,
|
|
pub outpoint_spends: usize,
|
|
pub graveyard_tombstones: usize,
|
|
pub graveyard_order: usize,
|
|
pub rebuilds: u64,
|
|
}
|
|
|
|
impl From<&Mempool> for MempoolStats {
|
|
fn from(mempool: &Mempool) -> Self {
|
|
let state = mempool.read();
|
|
let rebuilder = mempool.rebuilder();
|
|
Self {
|
|
txs: state.txs.len(),
|
|
unresolved: state.txs.unresolved().len(),
|
|
addrs: state.addrs.len(),
|
|
outpoint_spends: state.outpoint_spends.len(),
|
|
graveyard_tombstones: state.graveyard.tombstones_len(),
|
|
graveyard_order: state.graveyard.order_len(),
|
|
rebuilds: rebuilder.rebuild_count(),
|
|
}
|
|
}
|
|
}
|