pub trait Connection: Status + Headers + Read + Write {
type Headers: Status + Headers;
type Read: Read<Error = Self::Error>;
type RawConnectionError: Error;
type RawConnection: Read<Error = Self::RawConnectionError, Error = Self::RawConnectionError> + Write;
// Required methods
fn initiate_request<'a>(
&'a mut self,
method: Method,
uri: &'a str,
headers: &'a [(&'a str, &'a str)],
) -> Result<(), Self::Error>;
fn is_request_initiated(&self) -> bool;
fn initiate_response(&mut self) -> Result<(), Self::Error>;
fn is_response_initiated(&self) -> bool;
fn split(&mut self) -> (&Self::Headers, &mut Self::Read);
fn raw_connection(
&mut self,
) -> Result<&mut Self::RawConnection, Self::Error>;
}