use crate::janus_interface::MaybeSend;
use crate::janus_interface::MaybeSync;
use crate::Error;
use bytes::Bytes;
use std::fmt::Debug;
use tokio::sync::mpsc;
#[cfg_attr(not(target_family = "wasm"), async_trait::async_trait)]
#[cfg_attr(target_family = "wasm", async_trait::async_trait(?Send))]
pub trait Transport: Debug + MaybeSend + MaybeSync + 'static {
async fn connect(&self, url: &str) -> Result<mpsc::UnboundedReceiver<Bytes>, Error>;
async fn send(&self, data: &[u8], path: &str) -> Result<(), Error>;
}