#![cfg_attr(docsrs, feature(doc_cfg))]
use crate::provider::HttpProvider;
#[cfg(feature = "pubsub")]
use crate::pubsub_provider::PubsubProvider;
mod methods;
pub mod provider;
#[cfg(feature = "pubsub")]
mod pubsub_methods;
#[cfg(feature = "pubsub")]
#[cfg_attr(docsrs, doc(cfg(feature = "pubsub")))]
pub mod pubsub_provider;
pub struct WasmClient {
provider: HttpProvider,
}
impl WasmClient {
pub fn new(url: impl ToString) -> Self {
let provider = HttpProvider::new(url);
Self { provider }
}
pub fn url(&self) -> &str {
&self.provider.url
}
}
#[cfg(feature = "pubsub")]
#[cfg_attr(docsrs, doc(cfg(feature = "pubsub")))]
pub struct WasmPubsubClient {
provider: PubsubProvider,
}
#[cfg(feature = "pubsub")]
impl WasmPubsubClient {
pub fn connect(
url: impl ToString,
) -> Result<Self, Box<solana_rpc_client_types::request::RpcError>> {
let provider = PubsubProvider::connect(url)?;
Ok(Self { provider })
}
pub fn url(&self) -> &str {
self.provider.url()
}
}