The procedural macro `#[maybe_async]` makes a method or every method of a trait "async" whenever the target_arch is `wasm32`, and leaves them untouched on every other platform. The macro `maybe_await!($e:expr)` can be used to call `maybe_async` methods on multi-platform code: it expands to `$e` on non-wasm32 platforms and to `$e.await` on wasm32. The macro `await_or_block!($e:expr)` can be used to contain async code as much as possible: it expands to `tokio::runtime::Runtime::new().unwrap().block_on($e)` on non-wasm32 platforms, and to `$e.await` on wasm32.
46 lines
893 B
Rust
46 lines
893 B
Rust
pub extern crate bitcoin;
|
|
extern crate log;
|
|
pub extern crate miniscript;
|
|
extern crate serde;
|
|
#[macro_use]
|
|
extern crate serde_json;
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
#[macro_use]
|
|
extern crate async_trait;
|
|
#[macro_use]
|
|
extern crate magical_macros;
|
|
|
|
#[cfg(test)]
|
|
#[macro_use]
|
|
extern crate lazy_static;
|
|
|
|
#[cfg(feature = "electrum")]
|
|
pub extern crate electrum_client;
|
|
#[cfg(feature = "electrum")]
|
|
pub use electrum_client::client::Client;
|
|
|
|
#[cfg(feature = "esplora")]
|
|
pub extern crate reqwest;
|
|
#[cfg(feature = "esplora")]
|
|
pub use blockchain::esplora::EsploraBlockchain;
|
|
|
|
#[cfg(feature = "key-value-db")]
|
|
pub extern crate sled;
|
|
|
|
#[cfg(feature = "cli-utils")]
|
|
pub mod cli;
|
|
|
|
#[macro_use]
|
|
pub mod error;
|
|
pub mod blockchain;
|
|
pub mod database;
|
|
pub mod descriptor;
|
|
pub mod psbt;
|
|
pub mod signer;
|
|
pub mod types;
|
|
pub mod wallet;
|
|
|
|
pub use descriptor::ExtendedDescriptor;
|
|
pub use wallet::{OfflineWallet, Wallet};
|