[−][src]Trait libp2p_request_response::codec::RequestResponseCodec
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.
Associated Types
type Protocol: ProtocolName + Send + Clone
The type of protocol(s) or protocol versions being negotiated.
type Request: Send
The type of inbound and outbound requests.
type Response: Send
The type of inbound and outbound responses.
Required methods
#[must_use]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>> + Send + 'async_trait>> where
T: AsyncRead + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Request>> + Send + 'async_trait>> where
T: AsyncRead + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Reads a request from the given I/O stream according to the negotiated protocol.
#[must_use]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>> + Send + 'async_trait>> where
T: AsyncRead + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Response>> + Send + 'async_trait>> where
T: AsyncRead + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Reads a response from the given I/O stream according to the negotiated protocol.
#[must_use]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<()>> + Send + 'async_trait>> where
T: AsyncWrite + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T,
req: Self::Request
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
T: AsyncWrite + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Writes a request to the given I/O stream according to the negotiated protocol.
#[must_use]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<()>> + Send + 'async_trait>> where
T: AsyncWrite + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
&'life0 mut self,
protocol: &'life1 Self::Protocol,
io: &'life2 mut T,
res: Self::Response
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
T: AsyncWrite + Unpin + Send,
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Writes a response to the given I/O stream according to the negotiated protocol.