Trait libp2p::request_response::codec::RequestResponseCodec
source · pub trait RequestResponseCodec {
type Protocol: ProtocolName + Send + Clone;
type Request: Send;
type Response: Send;
// Required methods
fn read_request<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Request, Error>> + Send + 'async_trait, Global>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncRead + Unpin + Send + 'async_trait,
Self: 'async_trait;
fn read_response<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Response, Error>> + Send + 'async_trait, Global>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncRead + Unpin + Send + 'async_trait,
Self: 'async_trait;
fn write_request<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T,
req: Self::Request
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncWrite + Unpin + Send + 'async_trait,
Self: 'async_trait;
fn write_response<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T,
res: Self::Response
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncWrite + Unpin + Send + 'async_trait,
Self: 'async_trait;
}
Expand description
A RequestResponseCodec
defines the request and response types
for a RequestResponse
protocol or
protocol family and how they are encoded / decoded on an I/O stream.
Required Associated Types§
sourcetype Protocol: ProtocolName + Send + Clone
type Protocol: ProtocolName + Send + Clone
The type of protocol(s) or protocol versions being negotiated.
Required Methods§
sourcefn read_request<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Request, Error>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncRead + Unpin + Send + 'async_trait,
Self: 'async_trait,
fn read_request<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 mut self, protocol: &'life1 Self::Protocol, io: &'life2 mut T ) -> Pin<Box<dyn Future<Output = Result<Self::Request, Error>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, T: AsyncRead + Unpin + Send + 'async_trait, Self: 'async_trait,
Reads a request from the given I/O stream according to the negotiated protocol.
sourcefn read_response<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Response, Error>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncRead + Unpin + Send + 'async_trait,
Self: 'async_trait,
fn read_response<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 mut self, protocol: &'life1 Self::Protocol, io: &'life2 mut T ) -> Pin<Box<dyn Future<Output = Result<Self::Response, Error>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, T: AsyncRead + Unpin + Send + 'async_trait, Self: 'async_trait,
Reads a response from the given I/O stream according to the negotiated protocol.
sourcefn write_request<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T,
req: Self::Request
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncWrite + Unpin + Send + 'async_trait,
Self: 'async_trait,
fn write_request<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 mut self, protocol: &'life1 Self::Protocol, io: &'life2 mut T, req: Self::Request ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, T: AsyncWrite + Unpin + Send + 'async_trait, Self: 'async_trait,
Writes a request to the given I/O stream according to the negotiated protocol.
sourcefn write_response<'life0, 'life1, 'life2, 'async_trait, T>(
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T,
res: Self::Response
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: AsyncWrite + Unpin + Send + 'async_trait,
Self: 'async_trait,
fn write_response<'life0, 'life1, 'life2, 'async_trait, T>( &'life0 mut self, protocol: &'life1 Self::Protocol, io: &'life2 mut T, res: Self::Response ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, T: AsyncWrite + Unpin + Send + 'async_trait, Self: 'async_trait,
Writes a response to the given I/O stream according to the negotiated protocol.