Bindings don't accept dyn traits, but instead map any traits to a
single dynamic struct. Thus, we can always take a specific trait
to accept any implementation, which we do here.
+//! Chain sync using the electrum protocol
+
use crate::common::{ConfirmedTx, FilterQueue, SyncState};
use crate::error::{InternalError, TxSyncError};
+//! Common error types
+
use std::fmt;
#[derive(Debug)]
+//! Chain sync using the Esplora API
+
use crate::common::{ConfirmedTx, FilterQueue, SyncState};
use crate::error::{InternalError, TxSyncError};
extern crate bdk_macros;
#[cfg(any(feature = "esplora-blocking", feature = "esplora-async"))]
-mod esplora;
+pub mod esplora;
#[cfg(any(feature = "electrum"))]
-mod electrum;
+pub mod electrum;
#[cfg(any(feature = "esplora-blocking", feature = "esplora-async", feature = "electrum"))]
mod common;
#[cfg(any(feature = "esplora-blocking", feature = "esplora-async", feature = "electrum"))]
-mod error;
+pub mod error;
#[cfg(any(feature = "esplora-blocking", feature = "esplora-async", feature = "electrum"))]
pub use error::TxSyncError;