pub(crate) mod dispatcher;
pub(crate) mod handshake;
pub(crate) mod socket;
pub(crate) mod tls;
use std::pin::Pin;
use bytes::Bytes;
use futures::{Sink, Stream};
pub(crate) trait Transport:
Sink<Bytes, Error = crate::error::TransportError>
+ Stream<Item = Result<Bytes, crate::error::TransportError>>
+ Send
+ Unpin
{
}
impl<T> Transport for T where
T: Sink<Bytes, Error = crate::error::TransportError>
+ Stream<Item = Result<Bytes, crate::error::TransportError>>
+ Send
+ Unpin
{
}
pub(crate) type BoxedTransport = Pin<Box<dyn Transport>>;
pub(crate) use dispatcher::{Dispatcher, DispatcherHandle};
pub(crate) use handshake::{ConnectedDispatcher, connect};