use crate::{protocol::Message, Result};
use async_trait::async_trait;
pub mod client;
pub mod server;
#[async_trait]
pub trait HttpTransport: Send + Sync {
async fn initialize(&mut self) -> Result<()>;
async fn send(&self, message: Message) -> Result<()>;
async fn receive(&self) -> Result<Message>;
async fn close(&mut self) -> Result<()>;
}
pub use self::client::DefaultHttpClient;
pub use self::server::DefaultHttpServer;