use std::io;
use std::time::Duration;
use roam_wire::Message;
#[cfg(not(target_arch = "wasm32"))]
pub trait MessageTransport: Send {
fn send(&mut self, msg: &Message) -> impl std::future::Future<Output = io::Result<()>> + Send;
fn recv_timeout(
&mut self,
timeout: Duration,
) -> impl std::future::Future<Output = io::Result<Option<Message>>> + Send;
fn recv(&mut self) -> impl std::future::Future<Output = io::Result<Option<Message>>> + Send;
fn last_decoded(&self) -> &[u8];
}
#[cfg(target_arch = "wasm32")]
pub trait MessageTransport {
fn send(&mut self, msg: &Message) -> impl std::future::Future<Output = io::Result<()>>;
fn recv_timeout(
&mut self,
timeout: Duration,
) -> impl std::future::Future<Output = io::Result<Option<Message>>>;
fn recv(&mut self) -> impl std::future::Future<Output = io::Result<Option<Message>>>;
fn last_decoded(&self) -> &[u8];
}