zebrad/components.rs
1//! Holds components of a Zebra node.
2//!
3//! Some, but not all, of these components are structured as Abscissa components,
4//! while the others are just ordinary structures. This is because Abscissa's
5//! component and dependency injection models are designed to work together, but
6//! don't fit the async context well.
7
8pub mod health;
9pub mod inbound;
10#[allow(missing_docs)]
11pub mod mempool;
12pub mod metrics;
13#[allow(missing_docs)]
14pub mod sync;
15#[allow(missing_docs)]
16pub mod tokio;
17#[allow(missing_docs)]
18pub mod tracing;
19
20#[cfg(feature = "internal-miner")]
21pub mod miner;
22
23pub use inbound::Inbound;
24pub use sync::ChainSync;
25
26/// Consumes, updates, and returns `Self`.
27pub trait With<T> {
28 /// Consumes `self`, updates it, and returns the updated version.
29 fn with(self, _: T) -> Self;
30}