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;
13pub mod notify;
14#[allow(missing_docs)]
15pub mod sync;
16#[allow(missing_docs)]
17pub mod tokio;
18#[allow(missing_docs)]
19pub mod tracing;
20pub mod zcashd_compat;
21
22#[cfg(feature = "internal-miner")]
23pub mod miner;
24
25pub use inbound::Inbound;
26pub use sync::ChainSync;
27
28/// Consumes, updates, and returns `Self`.
29pub trait With<T> {
30 /// Consumes `self`, updates it, and returns the updated version.
31 fn with(self, _: T) -> Self;
32}