pub trait Connection: Query + Headers + Read + Write {
type Headers: Query + Headers;
type Read: Read<Error = Self::Error>;
type RawConnectionError: Error;
type RawConnection: Read<Error = Self::RawConnectionError> + Write<Error = Self::RawConnectionError>;
// Required methods
fn split(&mut self) -> (&Self::Headers, &mut Self::Read);
fn initiate_response<'a>(
&'a mut self,
status: u16,
message: Option<&'a str>,
headers: &'a [(&'a str, &'a str)],
) -> Result<(), Self::Error>;
fn is_response_initiated(&self) -> bool;
fn raw_connection(
&mut self,
) -> Result<&mut Self::RawConnection, Self::Error>;
}