#[cfg(http_rpc_sender)]
pub mod http_rpc_sender;
use solana_rpc_client_api::request::RpcRequest;
use std::{future::Future, time::Duration};
#[cfg(http_rpc_sender)]
pub use http_rpc_sender::HttpRpcSender;
#[derive(Default, Clone)]
pub struct RpcTransportStats {
pub request_count: usize,
pub elapsed_time: Duration,
pub rate_limited_time: Duration,
}
pub trait RpcSender {
fn send(
&self,
request: RpcRequest,
params: serde_json::Value,
) -> impl Future<Output = crate::Result<serde_json::Value>>;
fn get_transport_stats(&self) -> RpcTransportStats;
fn url(&self) -> String;
}