alloy_transport/
lib.rs

1#![doc = include_str!("../README.md")]
2#![doc(
3    html_logo_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/alloy.jpg",
4    html_favicon_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/favicon.ico"
5)]
6#![cfg_attr(not(test), warn(unused_crate_dependencies))]
7#![cfg_attr(docsrs, feature(doc_cfg))]
8
9mod boxed;
10pub use boxed::{BoxTransport, IntoBoxTransport};
11
12mod dual;
13pub use dual::*;
14
15mod connect;
16pub use connect::TransportConnect;
17
18mod common;
19pub use common::Authorization;
20
21pub mod mock;
22
23mod error;
24#[doc(hidden)]
25pub use error::TransportErrorKind;
26pub use error::{HttpError, TransportError, TransportResult};
27
28mod r#trait;
29pub use r#trait::Transport;
30
31pub use alloy_json_rpc::{RpcError, RpcResult};
32pub use futures_utils_wasm::{impl_future, BoxFuture};
33
34pub mod layers;
35
36/// Misc. utilities for building transports.
37pub mod utils;
38
39/// Pin-boxed future.
40pub type Pbf<'a, T, E> = futures_utils_wasm::BoxFuture<'a, Result<T, E>>;
41
42/// Future for transport-level requests.
43pub type TransportFut<'a, T = alloy_json_rpc::ResponsePacket, E = TransportError> = Pbf<'a, T, E>;
44
45/// Future for RPC-level requests.
46pub type RpcFut<'a, T> = futures_utils_wasm::BoxFuture<'a, TransportResult<T>>;
47
48/// Cross platform time types.
49mod time {
50    #[cfg(target_family = "wasm")]
51    pub(crate) use wasmtimer::std::Instant;
52
53    #[cfg(not(target_family = "wasm"))]
54    pub(crate) use std::time::Instant;
55}